Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Validation symfony2自定义验证程序FatalErrorException_Validation_Symfony - Fatal编程技术网

Validation symfony2自定义验证程序FatalErrorException

Validation symfony2自定义验证程序FatalErrorException,validation,symfony,Validation,Symfony,我正在使用Symfony2,并试图为我的类构建一个自定义验证器 我跟着导游找到的 我收到一个奇怪的错误: FatalErrorException:编译错误:无法在/home/myfolder/src/Acme/MyProjectBundle/Validator/Constraints/isUniqueNameInPlaces.php第123行重新声明类Acme\MyProject\Validator\Constraints\isUniqueNameInPlaces 但是,文件isUniqueNa

我正在使用Symfony2,并试图为我的类构建一个自定义验证器

我跟着导游找到的

我收到一个奇怪的错误:

FatalErrorException:编译错误:无法在/home/myfolder/src/Acme/MyProjectBundle/Validator/Constraints/isUniqueNameInPlaces.php第123行重新声明类Acme\MyProject\Validator\Constraints\isUniqueNameInPlaces

但是,文件isUniqueNameInPlaces.php只有14行长。 我肯定我做了一些愚蠢的事,但我不知道是什么。有人能帮我一下吗

这是我的isUniqueNameInPlaces

  <?php

  // src/Acme/MyProject/Validator/Constraints/UniqueNameInPlaces.php
  namespace Acme\MyProject\Validator\Constraints;

  use Symfony\Component\Validator\Constraint;

  /**
  * @Annotation
  */
  class isUniqueNameInPlaces extends Constraint
  {
      public $message = 'Name is not unique';
  }

您在其他地方已经有了isUniqueNameInPlaces类?因此错误无法重新声明类
给你的isUniqueNameInPlaces类取一个其他的名字,然后看看它是否合适

编辑:

您的文件不也应该是
Acme/MyProject/Validator/Constraints/isUniqueNameInPlaces.php
而不是

Acme/MyProjectBundle/Validator/Constraints/isUniqueNameInPlaces.php

您确定这两个文件的名称反映了类名吗?请注释您的类,清空缓存,然后重试。发生了什么?如果不是更好的话,那就用硬方法快速缓存:rm-rf app/cache/*并重试…注释了constraint类,我得到:
RuntimeException:autoloader期望在文件中定义类“Acme\MyProjectBundle\Validator\Constraints\isUniqueNameInPlaces”“/home/myfolder/src/Acme/MyProjectBundle/Validator/Constraints/isUniqueNameInPlaces.php“。找到了文件,但类不在其中,类名或命名空间可能有输入错误。
您的文件不应该是Acme/MyProject/Validator/Constraints/isUniqueNameInPlaces.php而不是Acme/MyProjectBundle/Validator/Constraints/isUniqueNameInPlaces.php吗?看到MyProject而不是MyProjectBundle了吗?是的。。。你是对的!我知道这是个愚蠢的错误。。。非常感谢你!
  <?php

  // src/Acme/MyProject/Validator/Constraints/isUniqueNameInPlacesValidator.php
  namespace Acme\MyProject\Validator\Constraints;

  use Symfony\Component\Validator\Constraint;
  use Symfony\Component\Validator\ConstraintValidator;

  class isUniqueNameInPlacesValidator extends ConstraintValidator
  {

      public function getTargets()
      {
          return self::CLASS_CONSTRAINT;
      }

      public function validate($protocol, Constraint $constraint)
      {
  //      my logic
      }
  }