在Symfony 2中创建具有相同表单的2个不同实体

时间:2013-03-05 06:55:52

标签: php forms symfony-2.1 symfony-forms

是否可以创建具有相同形式和操作的2个相关实体?如果是,怎么样?

我想在1步注册中创建一个新用户及其相关问卷。

谢谢, 卢卡

1 个答案:

答案 0 :(得分:9)

您可以为相关实体(问卷调查)创建表单类型,并将其用作用户表单类型中的字段类型。它被称为表单嵌套。

// src/Acme/DemoBundle/Form/Type/QuestionnaireType.php
namespace Acme\DemoBundle\Form\Type;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;

class QuestionnaireType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        // create your form
    }

    public function getName()
    {
        return 'questionnaire';
    }
}

// src/Acme/DemoBundle/Form/Type/UserType.php
namespace Acme\DemoBundle\Form\Type;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;

class UserType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        // ...
        $builder->add('questionnaire', new QuestionnaireType());
    }

    public function getName()
    {
        return 'user';
    }
}