Symfony2 FormType到JSON

时间:2014-11-12 08:11:59

标签: php json symfony

是否有可能以某种方式将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'));
    }
    ...
}

可以使用Symfony2本身获得以下或类似的JSON格式,或者我需要自定义解析器吗?

{
    "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"
     }
}

2 个答案:

答案 0 :(得分:0)

您可以实现一个表单主题,以您想要的任何方式输出您的小部件。这是一个link to Symfony documentation,解释了如何创建和应用表单主题。

但是,如果你正在实现一个API(否则你为什么需要将表单作为JSON?),你应该看看FOSRestBundle,因为它实现了表单处理和序列化。

答案 1 :(得分:0)

看起来您可能正在寻找类似Liform bundle的内容,它允许您从Symfony表单生成JSON模式。