我想验证用户实体的唯一性。我这样做:
$builder->add('email', 'email', array(
'required' => true,
'constraints' => array(
new NotBlank(), new Email(), new UniqueEntity(array('fields' => array('email')))
)
)
)
但我收到以下错误:
Warning: get_class() expects parameter 1 to be object, string given in vendor/symfony/symfony/src/Symfony/Bridge/Doctrine/Validator/Constraints/UniqueEntityValidator.php line 66
我做错了什么?
最佳答案
它失败了,因为 UniqueEntity 需要应用于实体而不是单个字段。称为类约束。您最好的选择是使用validation.yml,如下所述:http://symfony.com/doc/current/reference/constraints/UniqueEntity.html
但是,应该可以使用 setDefaultOptions 来应用它:
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'constraints' => array(
new UniqueEntity(array('fields' => array('email'))),
关于symfony - 唯一实体约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17877638/