Validation symfony2自定义验证程序FatalErrorException
我正在使用Symfony2,并试图为我的类构建一个自定义验证器 我跟着导游找到的 我收到一个奇怪的错误: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
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
}
}