使用 Doctrine2 注释的 Symfony2 验证

Symfony2 Validation using Doctrine2 Annotations

我有以下 Doctrine 实体,我也想使用它的限制来进行验证。

/**
 * @var string
 *
 * @ORM\Column(type="string", length=40)
 * @Assert\Valid
 */
private $birthName;

我使用以下验证,它适用于 symfony 特定注释但不适用于 Doctrine 集限制!

// Validate data
$validator = $this->get('validator');
$errors = $validator->validate($user);

if (count($errors) > 0) {
    $response = new JsonResponse(array(
        'error' => 'User could not be created.' . PHP_EOL . (string)$errors
    ));
    $response->setStatusCode(400);

    return $response;
}

What can I do to let symfony validator use the doctrine restrictions as settings?

现状:
我读过 [1] and [2] 但到目前为止我没有使用表单,因为我有一个控制器返回 JSON。如果您知道如何使用表单进行此操作,也会有很大帮助!

原则映射与验证无关。 代码 @ORM\Column(type="string", length=40) 仅将 属性 映射到数据库字段,并将数据库字段的最大长度设置为等于 40 个字符,如果您使用原则创建模式。

但因此不参与验证过程的任何部分。 所以你需要通过

之类的东西来设置断言规则
   /**
   * @Assert\Length(max = 40)
   */