phpsymfonyannotationssymfony4symfony-validator

Symfony4 : The annotation does not exist, or could not be auto-loaded (Symfony\Component\Validator\Constraints)


I'm working on a Symfony4 application and I have this error :

[Semantical Error] The annotation "@Symfony\Component\Validator\Constraints\NotBlank" in property App\Entity\Product::$brochure does not exist, or could not be auto-loaded.

Here is the Productclass:

namespace App\Entity;

use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;

/**
 * @ORM\Entity(repositoryClass="App\Repository\ProductRepository")
 */
class Product
{
    /**
     * @ORM\Id
     * @ORM\GeneratedValue
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\Column(type="string", length=100)
     */
    private $name;
    
    /**
     * @ORM\Column(type="decimal", scale=2, nullable=true)
     */
    private $price;

    /**
     * @ORM\Column(type="text")
     */
    private $description;

    /**
     * @ORM\Column(type="string")
     *
     * @Assert\NotBlank(message="Please, upload the product brochure as a PDF file.")
     * @Assert\File(mimeTypes={ "application/pdf" })
     */
    private $brochure;
    
    public function getBrochure()
    {
        return $this->brochure;
    }

    public function setBrochure($brochure)
    {
        $this->brochure = $brochure;

        return $this;
    }

    public function getId()
    {
        return $this->id;
    }

    public function getName()
    {
        return $this->name;
    }

    public function setName($name)
    {
        $this->name = $name;
    }

    // ... getters & setters for price & description

    public function setPrice($price)
    {
        $this->price = $price;
    }

    public function setDescription($description)
    {
        $this->description = $description;
    }
}

The annotation @Symfony\Component\Validator\Constraints\File makes also an error.

Maybe, I forgot to configure something in Symfony, I don't know.

How do I solve the problem?


Solution

  • Maybe you should mention that in the composer file, cause in symfony 4 every dependency will automatically loaded and installed via the flex

        "require": {
    #...
            "symfony/validator": "^3.3",
    
        },