我需要在控制器动作中动态添加约束,所以我这样做:
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();
但是我收到了这个错误:
The options "fields" must be set for constraint Doctrine\Bundle\MongoDBBundle\Validator\Constraints\Unique
我尝试将array('fields' => 'email')
和array('fields' => array('email'))
传递给构造函数但是没有工作:Warning: get_class() expects parameter 1 to be object, string given in /home/www/dev/public/pixfeed/vendor/symfony/symfony/src/Symfony/Bridge/Doctrine/Validator/Constraints/UniqueEntityValidator.php line 63
那么我该如何使用这个类?
答案 0 :(得分:0)
类Doctrine \ Bundle \ MongoDBBundle \ Validator \ Constraints \ Unique通常用于整个Document。 E.g。
/**
* @MongoDB\Document(collection="users")
* @MongoDBUnique(fields="email")
*/
class User
在我眼中,在ORM / ODM级别上更有意义,而不仅仅是检查用户输入是否是唯一的。 但是,如果您有兴趣在表单中执行此操作,则可以编写custom constraint。