Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Forms 如何为表单验证创建唯一的约束对象?_Forms_Mongodb_Symfony_Validation_Symfony 2.1 - Fatal编程技术网

Forms 如何为表单验证创建唯一的约束对象?

Forms 如何为表单验证创建唯一的约束对象?,forms,mongodb,symfony,validation,symfony-2.1,Forms,Mongodb,Symfony,Validation,Symfony 2.1,我需要在控制器动作中动态添加约束,因此我正在执行以下操作: use Doctrine\Bundle\MongoDBBundle\Validator\Constraints\Unique; // ... $form = $this->createFormBuilder($user) ->add('email', 'email', array( 'constraints' => array( new

我需要在控制器动作中动态添加约束,因此我正在执行以下操作:

use Doctrine\Bundle\MongoDBBundle\Validator\Constraints\Unique;

// ...

    $form = $this->createFormBuilder($user)
        ->add('email', 'email', array(
            'constraints' => array(
                new NotBlank(),
                new MinLength(8),
                new MaxLength(100),
                new Email(),
                new Unique(),
            ),
        ))
        ->getForm();
但我得到了这个错误:

必须为约束原则\Bundle\MongoDBBundle\Validator\Constraints\Unique设置选项“fields”

我尝试将
数组('fields'=>'email')
数组('fields'=>array('email'))
传递给构造函数,但没有成功:
警告:get_class()希望参数1是对象,字符串在/home/www/dev/public/pixfeed/vendor/symfony/symfony/src/symfony/Bridge/Doctrine/Validator/Constraints/uniquentityvalidator.php第63行给出


那么我如何使用这个类呢?

整个文档通常使用类原则\Bundle\MongoDBBundle\Validator\Constraints\Unique。例如

/**
 * @MongoDB\Document(collection="users")
 * @MongoDBUnique(fields="email")
 */
class User
在我看来,这在ORM/ODM级别上比仅仅检查用户输入是否唯一更有意义。
但是,如果你是被迫以表单的形式完成的,你可以写一个。

你是否尝试了newunique(数组('fields'=>'email'))或newunique(数组('fields'=>array('email'))?@getme两者都有。我更新了我的问题如果我这样做,我将无法登录(例如),因为它将检查电子邮件的唯一性。如果我添加验证组,类将变成一堆注释。对于每个表单,我必须在文档的每个属性的每个约束中添加另一个验证组。这也使得它更难扩展。