あなたの質問には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です。
お役に立てれば。
よろしく、
マット