2

私のSymfony2プロジェクトでは、フォームをレンダリングするためのレイアウトオプションが2つしかないことに気づきました。

form_table_layout.html.twigform_div_layout.html.twig

これらは両方ともにあり、自分のディレクトリsymfony\src\Symfony\Bridge\Twig\Resources\views\Formのどこかに自分のものを追加したいと思います。app\Resources

私が抱えている唯一の問題は、新しいレイアウトファイル(form_list_layout.html.twig)をに追加するapp\Resources\views\Formと、Symfonyはそれを検索せず、代わりにデフォルトの場所(Twigディレクトリ)を検索することです。

新しいレイアウトを含めるように調整config.ymlしましたが、何か間違ったことをしている可能性があります。

twig:
    debug:            %kernel.debug%
    strict_variables: %kernel.debug%
    form:
        resources: ['form_list_layout.html.twig']

編集:さて、私は今Symfony2を正しい場所で見ていますが、フォームのレンダリングには何の影響も与えていないようです(テストするためにテーブルレイアウトファイルの内容を新しいリストレイアウトファイルにコピーしました理論上、フォームはまだ<div>タグを使用してレンダリングされています。これは、CraueFormFlowBundle使用していることが原因である可能性があるため、確認します)。

働くconfig.yml

 twig:
    debug:            %kernel.debug%
    strict_variables: %kernel.debug%
    form:
        resources:
            - ":Form:form_list_layout.html.twig"

編集2:とは何の関係もないように見えますがCraueFormFlowBundle、グローバルフォームレイアウトを無視する原因となる可能性のあるものが構成にありますか?

編集:実際には、それは機能しています。テーブルレイアウトコンテンツの代わりにリスト要素を含めるようにレイアウトファイルを変更するとすぐに、問題がないように見えました。

4

2 に答える 2

3

appサブフォルダに配置する必要はありません。好きなバンドルに入れることができます。たとえば、私の場合、ファイルに配置しCommonBundle/Resources/views/Form/fields.html.twigてアクティブ化しました。config.yml

twig:
    form:
        resources: [ 'CommonBundle:Form:fields.html.twig' ]

もちろん、appサブフォルダーに入れる場合は、バンドル名の部分を省略します。

twig:
    form:
        resources: [ ':Form:fields.html.twig' ]
于 2011-11-26T13:04:27.357 に答える
0

フォームレイアウトを正しく上書きしたり、新しいレイアウトを追加したりするには、ファイルをディレクトリに配置し、次のようにapp/Resources/views/Form微調整します...config.yml

twig:
    debug:            %kernel.debug%
    strict_variables: %kernel.debug%
    form:
        resources:
            - ":Form:form_list_layout.html.twig"
于 2011-11-26T11:15:25.447 に答える