Проверка Symfony2 с использованием аннотаций Doctrine2

У меня есть следующая сущность 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. Если вы знаете, как заставить эту работу работать с формами, это тоже очень поможет!

0

Решение

Отображения доктрин не имеют ничего общего с проверкой.
Код @ORM\Column(type="string", length=40) только сопоставляет свойство с полем базы данных и устанавливает максимальную длину поля базы данных равной 40 символам, если вы создадите схему с использованием доктрины.

Но, таким образом, не принимает участия в процессе проверки.
Так что вам нужно установить правило утверждения чем-то вроде

   /**
* @Assert\Length(max = 40)
*/
3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]