Symfony2:将表单添加到另一个表单中

时间:2012-09-30 11:53:25

标签: php symfony many-to-one

非常简单:

我有一个实体代理

/**
 * @var \Rewards\LocationBundle\Entity\Address
 *
 * @ORM\ManyToOne(targetEntity="\Acme\xxBundle\Entity\Address", cascade={"persist"})
 * @ORM\JoinColumn(name="address_id", referencedColumnName="id")
 */
protected $address;

我有一个创建表单的AgencyType:

   $builder
        ->add('name')
        ->add('address');

我还有AddressType

   $builder
        ->add('street')
        ->add('zipCode')
        ->add('city')
        ->add('country');

如果我把这个配置放在:

{{ form_widget(form) }} 
在树枝模板中的

我只查看“选择”表单小部件,但我想查看代码类型为AddressType的所有字段。

我怎么能这样做?

2 个答案:

答案 0 :(得分:6)

我已经解决了这个问题!

$builder
    ->add('name')
    ->add('agents')
    ->add('address', new AddressType());

清洁简单!

答案 1 :(得分:0)

在symfony 3/4中,您应该以AdressType形式添加实体的数据类(Entity)。 例如:

public function configureOptions(OptionsResolver $resolver)
{
    $resolver->setDefaults([
        'data_class' => Address::class,
    ]);
}