在我的Symfony2项目中,我注意到渲染表单只有两个布局选项:
form_table_layout.html.twig
和
form_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
无关,我的配置中是否有任何可能导致它忽略全局表单布局的内容?
答案 0 :(得分: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' ]
答案 1 :(得分:0)
要正确覆盖表单布局或添加新表单,请将文件放在app/Resources/views/Form
目录中,然后将config.yml
调整为类似的内容......
twig:
debug: %kernel.debug%
strict_variables: %kernel.debug%
form:
resources:
- ":Form:form_list_layout.html.twig"