【问题标题】:Symfony - UniqueEntity validation fails with exception "addConstraint() must be an instance of Symfony\Component\Validator\Constraint, array given"Symfony - UniqueEntity 验证失败,异常“addConstraint() 必须是 Symfony\Component\Validator\Constraint 的实例,给定数组”
【发布时间】:2014-02-09 14:21:17
【问题描述】:

当我在发布后尝试验证我的用户实体表单时,我得到了一个

ContextErrorException: Catchable Fatal Error: Argument 1 passed to Symfony\Component\Validator\Mapping\ClassMetadata::addConstraint() must be an instance of Symfony\Component\Validator\Constraint, array given

它确实是一个数组,因为它在validation.yml中是这样定义的

Transplan\CoreBundle\Entity\User:
  constraints:
    \Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity: { fields: [company, username], message: "Brugernavnet er allerede taget" }

但是我如何让验证器了解这是您根据http://symfony.com/doc/current/reference/constraints/UniqueEntity.html在 yml 中指定约束的方式

我的表单是这样创建的

$user = new User();
$createUserForm = $this->createFormBuilder($user)
   ->add('username', 'text')
   ->add('name', 'text')
   ->add('Opret', 'submit')
   ->getForm();

【问题讨论】:

    标签: php validation symfony


    【解决方案1】:

    您在约束前面缺少-

    Transplan\CoreBundle\Entity\User:
        constraints:
            - \Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity: [company, username]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-03
      • 2013-07-05
      • 1970-01-01
      • 2019-02-28
      • 1970-01-01
      • 1970-01-01
      • 2019-04-04
      相关资源
      最近更新 更多