ご質問には2つの部分があります。最初に接頭辞がフィールド名の前に付けられ、フィールド名自体が先頭に付けられます。
接頭辞を取り除くには、2.1
にいる場合@ m2mdasで説明されているテクニックを使用します。 2.1
でない場合は、createNamed
を使用してフォームを作成し、フォームを作成するときに空の名前を付けることをお勧めします。このような何か:
$this->formFactory->createNamed(new CustomType(), '', $data, $optionsArray);
は2.0.x
でこのフォームをテストしていないが、空の名前を持つことが、フィールドのプレフィックスを削除することを2.1
で確認することができないでください。
ここで、formFactory
はFormFactory
サービス(@form.factory
)のインスタンスです。
フィールドの場合、カスタム名を使用して、プロパティをマップする必要がある場所をSymfonyに伝えることができます。そのためには、property_path
オプションを使用します。これによりsymfonyはデフォルトパスの代わりにこのパスにプロパティをマップします。ここでは、タイプを形成するには、あなたがそれを定義するとき、あなたがそれを使用する方法:symfonyはPOSTデータからフィールドa
を受け取ったときに、これを使用して
public function buildForm(FormBuilder $builder, array $options)
{
$builder->add('a', 'text', array(
'property_path' => 'title',
));
$builder->add('b', 'text', array(
'property_path' => 'content',
));
}
は、それが財産title
とその逆にマップしますフォームがレンダリングされます。あなたのオブジェクトには、setTitle
メソッドとsetContent
メソッドが必要です。
これが役に立ちます。私にはわからない
よろしく、
マット
。私が見つけた最も近いものはカスタム[param converter](http://symfony.com/doc/current/bundles/SensioFrameworkExtraBundle/annotations/converters.html)を作成することです。 –