Задача 1
Я хотел бы создать регистрационную форму с помощью представления ajax.Регистрация работ $form->isValid()
.Однако, если форма не проходит регистрацию, мне нужно вернуть эти ошибки через ajax.
if ($form->isValid()) {
}else{
$errors = $form->getErrors();
// return some json encoded errors here
}
$form->getErrors()
возвращает пустой массив, даже если форма не прошла проверку (в этом случае я тестирую с именем пользователя, котороеслишком короткая).
Задача 2
Вторая проблема, с которой я столкнулся, заключается в том, что если форма проверяется, но ошибка все еще существует.Например, уникальное поле, для которого кто-то пытается передать то же значение.
if ($form->isValid()) {
$em = $this->getDoctrine()->getEntityManager();
$em->persist($form->getData());
$em->flush();
// error could be a username submitted more than once, username is unique field
}else{
// ...
}
Как я могу перехватить эту ошибку и вернуть ее через json?