我有以下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;
}
如果让symfony验证器将学说限制用作设置,我该怎么办?
现状:
我读了[1]和[2],但到目前为止我还没有使用表单,因为我有一个控制器返回JSON。如果您知道如何使用表单进行此操作也会有很多帮助!
答案 0 :(得分:3)
Doctrine映射与验证无关。
代码@ORM\Column(type="string", length=40)
仅将属性映射到数据库字段,如果要使用doctrine创建模式,则将数据库字段的最大长度设置为等于40个字符。
但因此不会采取验证过程的任何部分。 因此,您需要通过类似
的设置来设置断言规则 /**
* @Assert\Length(max = 40)
*/