2

在我的 Symfony2 项目中,我注意到渲染表单只有两个布局选项:

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

我已经调整我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

You don't have to place it into an app subfolder; you can place it in any bundle you want. For example, in my case, I've placed it into CommonBundle/Resources/views/Form/fields.html.twig and activate it in the config.yml file as

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

Of course, if you put it into an app subfolder, you just omit the bundle name part:

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 回答