UniqueEntity constraint

symfony, symfony-2.3, unique-constraint

Solution

It's failing because UniqueEntity needs to be applied against the entity and not an individual field. Called a class constraint. Your best bet is to use validation.yml as described in : http://symfony.com/doc/current/reference/constraints/UniqueEntity.html

However, it should be possible to apply it using setDefaultOptions:

public function setDefaultOptions(OptionsResolverInterface $resolver)
{
    $resolver->setDefaults(array(
        'constraints'     => array(
            new UniqueEntity(array('fields' => array('email'))),

Problem

I want to validate user entity for uniqueness. I do it this way: ``` $builder->add('email', 'email', array( 'required' => true, 'constraints' => array( new NotBlank(), new Email(), new UniqueEntity(array('fields' => array('email'))) ) ) ) ``` But I am getting following error: 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 What am I doing wrong?

Original source