Возможно ли каким-либо образом сериализовать Symfony2 FormType в JSON? У меня есть следующая форма для пользователя.
class UserType extends AbstractType
{
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name', 'text', array('label' => 'Name'))
->add('surname', 'text', array('label' => 'Surname'))
->add('username', 'text', array('label' => 'Username'))
->add('email', 'text', array('label' => 'Email'))
->add('isAdmin', 'checkbox', array('label' => 'Admin'));
}
...
}
Можно получить следующий или похожий формат JSON с использованием самого Symfony2, или мне понадобится мой собственный парсер?
{
"name": {
"type": "text",
"label": "Name"
},
"surname": {
"type": "text",
"label": "Surname"
},
"username": {
"type": "text",
"label": "Username"
},
"email": {
"type":"text",
"label":"Email"
},
"isAdmin": {
"type": "checkbox",
"label" : "Admin"
}
}
Похоже, вы можете искать что-то вроде комплекта Liform, который позволяет вам создать схему JSON из формы Symfony.
Вы можете реализовать тему формы, которая будет выводить ваши виджеты так, как вы хотите. Здесь приведена ссылка на документацию Symfony, в которой объясняется, как создавать и применять формы.
Однако, если вы внедряете API (в противном случае, почему вам нужно получить форму как JSON?), Вам обязательно нужно взглянуть на FOSRestBundle, поскольку он реализует обработку форм и сериализацию.