0

我正在尝试以嵌入形式设置 contact_phone 和 contact_postal_address 类型的数据:

public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('phone', 'contact_phone')
            ->add('postal', 'contact_postal_address');
    }

但据我所知,在创建表单时,我只能为这样的表单设置 1 个对象

$form = $this->createForm('address', $address); //address is the embed form

如何为地址类型中的每个子类型设置数据?

4

1 回答 1

0

创建用于此表单的特定于表单的模型,例如:

class ModelForForm
{
    public $phone;

    public $postal;
}

如果您使用注释,也可以在此处添加任何断言,例如Valid().

然后你可以用你的数据填充这个新模型:

$model = new ModelForForm();
$model->postal = $address;
// ...

$form = $this->createForm('address', $model);

确保将表单类型的data_class选项更新为您在上面创建的类的名称。

于 2013-07-04T07:35:23.293 回答