我对Symfony比较陌生.我有一个带有twig模板的bundle,它们在目录结构中自动加载注释,如:
src/bundle/Resources/views/Default/
Run Code Online (Sandbox Code Playgroud)
我的一个模板有一大堆代码重复了很多次(每个实例都有一些小的改动),我认为这样做包括几次格式化如下:
{% include 'form_include.html' with {'foo': 'bar'} %}
Run Code Online (Sandbox Code Playgroud)
每个实例的不同变量应该运行良好.但调试器告诉我它正在寻找包含文件
/app/Resources/
Run Code Online (Sandbox Code Playgroud)
但模板真的特定于这个包,我不希望它保存在其他地方.我尝试使用该../../src....方法指定其位置,没有运气.有没有办法做到这一点?
A.L*_*A.L 10
您可以使用捆绑包的名称提供路径:
{% include 'YourBundleNameBundle:Default:form_include.html.twig' with {
'foo': bar
} %}
Run Code Online (Sandbox Code Playgroud)
每个部分由以下分隔::
YourBundleNameBundle 对应于 src/YourBundleNameBundle/Resources/views/Default对应/Default于此文件夹中的目录form_include.html.twig对应form_include.html.twig于此文件夹中因此,该'YourBundleNameBundle:Default:form_include.html.twig'值将加载该src/bundle/Resources/views/Default/form_include.html.twig文件.
这句法适用于不同的嫩枝功能:include,extends,等.
它对于允许模板继承很有用.