所以我在Symfony2.4中有这个自定义验证器,
namespace My\Bundle\validation\Constraints;
use Symfony\Component\Validator\Constraint;
/**
* @Annotation
*/
class CustomValidator extends Constraint {
/**
* @var str the message to display if violation
*/
public $message = "the message";
/**
* {@inheritdoc}
*/
public function validatedBy()
{
return 'my_validator_service';
}
/**
* {@inheritdoc}
*/
public function getTargets()
{
return self::PROPERTY_CONSTRAINT;
}
}
现在,在另一个包FormType:
中.....
use My\Bundle\Validation\Constraints;
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$collectionConstraint = new Assert\Collection(array(
.......,
'test' => array(
new CustomValidator(),
),
........
$resolver->setDefaults(array(
'constraints' => $collectionConstraint,
'data' => $data,
));
}
但我得到了这个例外:
ClassNotFoundException:尝试加载类" CustomValidator"来自命名空间"我的\ Bundle \ Validation \ Constraints"在blabla \ Type。你需要"使用"它来自另一个命名空间?
你怎么看?可能是微不足道的,但我不知道它可能是什么答案 0 :(得分:1)
好的,我找到了。 命名空间和使用是正确的,但文件夹称为Validator而不是Validation。 对不起所有
答案 1 :(得分:0)
也许你应该改变你的使用指令:
use My\Bundle\Validation\Constraints\CustomValidator;