2016-04-29 20 views
1

Symfony 3の1ページに複数のフォームを扱うソリューションはありますか?Symfony3の1ページに複数のフォーム

基本的には動作しますが、すべてのフォームが同じ名前(フォーム)を持つように見えるので、他のフォームのnull値には1つのフォームの終了が送信されます。

私はページ上の複数のhandleRequestsを持って、一つの形

$form->handleRequest($request); 

... 

$secondform->handleRequest($request); 

ため、各私はフォームが送信されたチェックする可能性が必要だと思うけど

$request->request->get($form->getName()) 

は、両方に同じ名前を与えますこれは機能しません。

複数のフォームを処理したり、各フォームの名前を変更したりするソリューションはありますか?

+0

可能な複製:http://stackoverflow.com/questions/23994563/symfony2-two-forms-in-a-same-page 指定されたソリューションが動作していない場合は、コードの一部を共有してください。 –

+0

また、送信ボタンに異なる名前を付けて、そのキーをオフにすることもできます:http://symfony.com/doc/current/book/forms.html#submitting-forms-with-multiple-buttons – Cerad

+0

解決策は機能していませんSymfony2と同じように、私はまだSymfony3のフォームに名前を付ける可能性を探しています。 私は1つの形式は、各フォームに固有の名前を持つ必要があることを行うが、リクエストで送信されたかどうかを調べるために $要求 - >要求 - >取得(ます$ form->のgetName()) を使用しようとしましたすべての書式は「書式」の名前です。 – Invis00

答えて

2

1ページに複数の動的に生成されたフォームを扱うときにこの問題が発生しました。 isSubmitted()は、フォーム名に基づいてチェックし、すべてのフォームが同じ名前を持っていたと思うので、健全に動作しませんでした。このように、1つのフォームをのフォームに送信すると、そのフォームのデータとなります。

フォームファクトリのcreateNamedメソッドを使用してこの問題を回避しました。

これはのSymfony V3.2.1

​​

上でテンプレートをテストしただけで、フォームビューを反復処理し、通常はそれらをレンダリングし、かなり自明です。それぞれのフォームに対して明示的にform_end()を出力することを確認してください。ちょうどform_rest()を使用すると私は奇妙なことを経験しました。

関連する問題