Ale*_*rov 2 unique-constraint symfony symfony-2.3
我想验证用户实体的唯一性。我这样做:
$builder->add('email', 'email', array(
'required' => true,
'constraints' => array(
new NotBlank(), new Email(), new UniqueEntity(array('fields' => array('email')))
)
)
)
Run Code Online (Sandbox Code Playgroud)
但我收到以下错误:
警告:get_class() 期望参数 1 是对象,在 vendor/symfony/symfony/src/Symfony/Bridge/Doctrine/Validator/Constraints/UniqueEntityValidator.php 第 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'))),
Run Code Online (Sandbox Code Playgroud)