我正在尝试使用Symfony's Bootstrap 3 form theme文件,包括如下:
# config.yml
twig:
form_themes:
- 'WOSECoreBundle:Form:WOSE_form_theme.html.twig'
WOSE_form_theme.html.twig
看起来像这样:
{% use "bootstrap_3_layout.html.twig" %}
{% block button_widget -%}
{% set attr = attr|merge({class: (attr.class|default('btn-primary') ~ ' btn')|trim}) %}
{{- parent() -}}
{%- endblock %}
但是,每当我浏览到应用程序中使用表单的页面时,我都会看到以下错误:
"Template "bootstrap_3_layout.html.twig" cannot be used as a trait"
知道这里出了什么问题吗?
最佳答案
我遇到了a similar issue在 Symfony 的 github 帐户上,其中包含了一条具有启发性的评论:“如果模板扩展了另一个模板,则该模板不会具有特征。”
Twig 中的“Traits”是水平重用,使用 use
tag - 我们在 WOSE_form_theme.html.twig
中执行此操作:{% use "bootstrap_3_layout.html.twig"%}
。
Prior to Symfony 2.6.5 ,Symfony 的 Bootstrap3 模板包含以下行:
{% extends "form_div_layout.html.twig" %}
这个模板扩展
另一个模板,因此它不能通过use
引用(它“不可特质”),而我们正试图这样做。在 Symfony 2.6.5 及更高版本中,Bootstrap 模板包含以下行:
{% use "form_div_layout.html.twig" %}
此 >=2.6.5 版本的模板不再扩展另一个模板,因此可以根据需要通过 use
安全地引用。
将我的项目从 Symfony 2.6.3 升级到 2.6.5 解决了这个问题!
关于twitter-bootstrap - Symfony: "Template "bootstrap_3_layout.html.twig“不能用作特征”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30894278/