Мне нужно иметь общее JSON-представление ошибок для любой формы, которая у меня есть.
Я уже читал другие решения, такие как как вернуть форму в кодировке json. ошибки в symfony. Но я не хочу создавать еще один сервис для задачи, которую уже может решить другой бандл, который я подключил к своему проекту.
Я использую JMSSerializerBundle
в своем проекте, и я знаю, что этот пакет может обрабатывать ошибки формы Symfony, используя FormErrorHandler
. Но теперь я могу получить только сериализацию всей формы:
$errors = $form->getErrors();
$serializer = $this->get('jms_serializer');
$json = $serializer->serialize($errors, 'json');
Этот код вернет мне следующий JSON-объект:
{
"form": {
"children": {
"field1": [],
"field2": [],
"field_with_error": {
"errors": ["Error text"]
},
"collection": {
"child_form": [
{
"children": {
"field1": [],
"field2": []
}
}
]
}
}
},
"errors": []
}
Но мне нужно что-то вроде этого (только поля с ошибками):
{
"field_with_error": {
"errors": ["Error text"]
}
}
Как я могу этого добиться? Я посмотрел на FOSRestBundle, который уже решил эту проблему. Но я не нашел, как они это сделали.
FormErrorHandler
). Как я могу это сделать? - person Michael Sivolobov   schedule 27.01.2015