表单构建器中的symfony实体文本输入?

时间:2015-06-06 08:04:48

标签: php symfony

我在symfony中有两个实体: 第一个"用户"具有$ addresses属性的实体,该属性是与名为" UserAddresses"的第二个实体的一对多关系。字段:$ id,$ address(字符串)。 我想使用symfony表单生成器为我的网站创建注册页面,我想要一个文本输入供用户在注册页面中将他的地址添加到他的帐户。当我使用时:

$builder->add('addresses', 'entity', array(
    'class' => 'XXX\UserBundle\Entity\UserAddresses',
    'property' => 'address',
    'label' => 'label.address',
    'mapped' => false,
    'translation_domain' => 'labels'))
;

我看到一个输入选择框,显示用户地址(已经为空) 在注册页面中,用户无法将其地址添加到其中。 我该怎么做才能用输入类型替换这个输入元素=' text'用户输入地址的元素

2 个答案:

答案 0 :(得分:2)

对于可能包含许多User的{​​{1}},请使用收集字段类型。

UserAddresses

有关详细信息,请参阅官方symfony cookbook以嵌入表单集和collection field type reference

Transformer与集合类型的区别在于变换器只为您提供一个地址的文本字段,集合类型为您提供了一个完整的子表单(考虑地址,邮政编码,城市输入字段),可以添加额外的地址或删除地址。

答案 1 :(得分:0)

您可以在构建表单之前使用ModelTransformerAddress转换为字段,并在提交表单中将文本值反向转换为Address对象