2014-11-12 3 views
0

Возможно ли как-то сериализовать Symfony2 FormType в JSON? У меня есть следующая форма для пользователя.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" 
    } 
} 

ответ

0

Вы можете реализовать тему формы, которая выводит ваши виджеты любым способом. Вот link to Symfony documentation, в котором объясняется, как создавать и применять темы формы.

Однако, если вы реализуете API (в противном случае, зачем вам нужно получить форму как JSON?), Вам обязательно нужно взглянуть на FOSRestBundle, поскольку он реализует обработку форм и сериализацию.