我正在尝试以嵌入形式设置contact_phone和contact_postal_address类型的数据:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('phone', 'contact_phone')
->add('postal', 'contact_postal_address');
}
但据我所知,在创建表单时,我只能为表单设置一个对象
$form = $this->createForm('address', $address); //address is the embed form
如何为地址类型中的每个子类型设置数据?
答案 0 :(得分:0)
创建用于此表单的特定于表单的模型,例如:
class ModelForForm
{
public $phone;
public $postal;
}
如果您正在使用注释,也可以在此处添加任何断言,例如Valid()
。
然后,您可以使用您的数据填充此新模型:
$model = new ModelForForm();
$model->postal = $address;
// ...
$form = $this->createForm('address', $model);
确保您将表单类型的data_class
选项更新为您在上面创建的类的名称。