简体   繁体   English

Symfony4 : 注释不存在,或无法自动加载 (Symfony\\Component\\Validator\\Constraints)

[英]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 :我正在开发 Symfony4 应用程序,但出现此错误:

[Semantical Error] The annotation "@Symfony\\Component\\Validator\\Constraints\\NotBlank" in property App\\Entity\\Product::$brochure does not exist, or could not be auto-loaded. [语义错误] 属性 App\\Entity\\Product::$brochure 中的注释“@Symfony\\Component\\Validator\\Constraints\\NotBlank”不存在,或无法自动加载。

Here is the Product class:这是Product类:

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.注释@Symfony\\Component\\Validator\\Constraints\\File也会出错。

Maybe, I forgot to configure something in Symfony, I don't know.也许,我忘了在 Symfony 中配置一些东西,我不知道。

How do I solve the problem?我该如何解决问题?

Well this is one of those "I feel stupid" fixes for me.嗯,这是对我来说“我觉得很愚蠢”的修复之一。 I had installed the package with flex but was still getting the error.我已经使用 flex 安装了该软件包,但仍然出现错误。 The reason being was I typed the Assert statement example found in the symfony documentation, but on my fairly high DPI monitor the back slash looked like a pipe, ie: @Assert|NotBlank(), but it should have been @Assert\\NotBlank()原因是我输入了 symfony 文档中的 Assert 语句示例,但在我相当高的 DPI 监视器上,反斜杠看起来像一个管道,即:@Assert|NotBlank(),但它应该是 @Assert\\NotBlank( )

Maybe you should mention that in the composer file, cause in symfony 4 every dependency will automatically loaded and installed via the flex也许你应该提到在 composer 文件中,因为在 symfony 4 中,每个依赖项都会通过 flex 自动加载和安装

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

    },

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Symfony2注释“ @Gedmo \\ Mapping \\ Annotation \\ Timestampable”不存在,或者无法自动加载 - Symfony2 The annotation “@Gedmo\Mapping\Annotation\Timestampable” does not exist, or could not be auto-loaded 注释不存在,或无法自动加载 - The annotation does not exist, or could not be auto-loaded symfony 3 [语义错误]类AppBundle \\ Entity \\ User中的注释@Doctrine \\ ORM \\ Mapping \\ Model不存在,或者无法自动加载 - symfony 3 [Semantical Error] The annotation @Doctrine\ORM\Mapping\Model in class AppBundle\Entity\User does not exist, or could not be auto-loaded 自定义约束验证器不存在,或无法自动加载 - Custom constraint validator does not exist, or could not be auto-loaded 属性中的注释不存在,或者无法自动加载 - The annotation in property does not exist, or could not be auto-loaded Symfony验证器模块无法自动加载注释 - Symfony validator module the annotation could not be auto loaded Symfony 2 - 属性中的注释不存在,或者无法自动加载。 - Symfony 2 - The annotation in property does not exist, or could not be auto-loaded. Entities \\ USER_User类中的注释“@Doctrine \\ ORM \\ Mapping \\ Entity”不存在,或者无法自动加载 - The annotation “@Doctrine\ORM\Mapping\Entity” in class Entities\USER_User does not exist, or could not be auto-loaded JMSSerializer独立 - 注释不存在,或者无法自动加载 - JMSSerializer stand alone - Annotation does not exist, or cannot be auto-loaded Doctrine 2 Gedmo扩展无法正常工作并出现错误:“不存在,或无法自动加载” - Doctrine 2 Gedmo extensions not working with error: “does not exist, or could not be auto-loaded”
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM