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 に答える