0

エンティティにリンクされていないフォームをいくつか作成する必要があります。ビルダーを作成する方法はかなり理解していましたが、ビルダーを使おうとするとかなり混乱し、Symfony2.0のオンラインドキュメントに例が見つかりません。

詳細に入るには:「多肢選択問題」フォームを作成します。だから私は作成しました:

  • 「クラスResponseTypeはAbstractTypeを拡張します」
  • 「クラスMCQTypeはAbstractTypeを拡張します」、これは私のクラスResponseTypeを使用します
  • 「responsetype_widget」と「mcqtype_widget」のテンプレートを含むファイル「forms.html.twig」

私の目的は、ラベルをカスタマイズして、このテンプレートでそれらを操作できるようにすることです(uniqueIDでdivを追加するなど)。特に、新しいアイテムを追加するときのアイテム化:「0」、「1」を変更する方法を知っています。 「Badanswer1」、「Bad answer 2」などの「」、「2」など。現在、クライアント側のJQueryで行っています。しかし、フォームを送信してエラーが表示されると、作成したアイテムは「0」、「1」で表示されます。サーバー側で生成されます。

状況をよりよく把握するためのスクリーンショットを次に示します。

これらのラベルは、サーバー側で、または「クラスMCQType extends AbstractType」で、またはforms.html.twigのmcqtype_widgetから実際にカスタマイズします。

ドキュメントで見つけたものをたくさん試しましたが、何も機能せず、サーバー側ではなくJSからそれをモフィファイすることを切望しています。誰かが良い例を持っていますか?

よろしくお願いします。そして、コレクションの操作について良いチュートリアルが実現されれば、私は本当に助けになります!

4

1 に答える 1

0

これらのラベルをカスタマイズするために必要なことは、変更を含めるためにテンプレートブロックを再定義することです。

そのためには、ドキュメントの次の部分が必要になります: http ://symfony.com/doc/2.0/cookbook/form/form_customization.html

また、フォームコレクションに慣れるために、これを試してみることをお勧めします:http: //bootstrap.mohrenweiserpartner.de/mopa/bootstrap/forms/collections

彼らがどのようにやっているのかを見るために、遠慮なく奥深くに行ってください。

PS:これらのラベルを非表示にする必要がある場合は'show_legend' => false,、フィールドオプション内を渡す必要があります

于 2012-09-13T11:14:05.337 に答える