あなたの質問には2つの部分があります。まず、フィールド名とフィールド名自体の前にプレフィックスを付けます。
プレフィックスを削除するには、にいる場合は@m2mdasで説明されているトリックを使用します2.1
。オンになっていない場合は、を使用してフォームを作成し、フォームを作成するときに空の名前を付けるの2.1
が最善の策です。createNamed
このようなもの:
$this->formFactory->createNamed(new CustomType(), '', $data, $optionsArray);
このフォームをテストしたことはありませんが、名前が空の場合はフィールドのプレフィックスが削除2.0.x
されることを確認できます。2.1
サービスformFactory
のインスタンスはどこにありますか( )。FormFactory
@form.factory
フィールドには、カスタム名を使用して、プロパティをマップする場所をSymfonyに指示できます。そのためには、property_path
オプションを使用します。これは、プロパティをデフォルトのパスではなくこのパスにマップするようにsymfonyに指示します。ここでは、フォームタイプを定義するときに、フォームタイプでどのように使用する必要がありますか。
public function buildForm(FormBuilder $builder, array $options)
{
$builder->add('a', 'text', array(
'property_path' => 'title',
));
$builder->add('b', 'text', array(
'property_path' => 'content',
));
}
これを使用して、Symfonya
がPOSTデータからフィールドを受信すると、それをプロパティにマップしtitle
、フォームがレンダリングされるときにその逆を行います。オブジェクトには、setTitle
メソッドとメソッドが必要setContent
です。
お役に立てれば。
よろしく、
マット