У меня есть следующая сущность Doctrine, и я хочу использовать ее ограничение также для проверки.
/**
* @var string
*
* @ORM\Column(type="string", length=40)
* @Assert\Valid
*/
private $birthName;
Я использую следующую проверку, которая работает для конкретных аннотаций Symfony но не Доктрина установила ограничения!
// 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. Если вы знаете, как заставить эту работу работать с формами, это тоже очень поможет!
Отображения доктрин не имеют ничего общего с проверкой.
Код @ORM\Column(type="string", length=40)
только сопоставляет свойство с полем базы данных и устанавливает максимальную длину поля базы данных равной 40 символам, если вы создадите схему с использованием доктрины.
Но, таким образом, не принимает участия в процессе проверки.
Так что вам нужно установить правило утверждения чем-то вроде
/**
* @Assert\Length(max = 40)
*/
Других решений пока нет …