Ошибки доступа в контроллере Symfony2 для формы, представленной AJAX

Проблема 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?

6
задан Ondrej Slinták 10 May 2012 в 07:28
поделиться