Symfony - UniqueEntity 验证失败,出现异常“addConstraint() must be an instance of Symfony\Component\Validator\Constraint, array given”

Tor*_*sen 1 php validation symfony

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

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
Run Code Online (Sandbox Code Playgroud)

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

Transplan\CoreBundle\Entity\User:
  constraints:
    \Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity: { fields: [company, username], message: "Brugernavnet er allerede taget" }
Run Code Online (Sandbox Code Playgroud)

但是我如何让验证器了解这是您根据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();
Run Code Online (Sandbox Code Playgroud)

Nic*_*ich 5

你错过-了约束前面的。

Transplan\CoreBundle\Entity\User:
    constraints:
        - \Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity: [company, username]
Run Code Online (Sandbox Code Playgroud)