我想在一个twig块中生成表头,并在页面上重用它,这个页面有大约5个不同的表,大致相同的标题.块代码是这样的:
{% block table_headers %} <th>Fiscal Year</th> <th>End Date</th> <th>Period Length</th> {% for item in result.FinancialStatements.COAMap.mapItem %} {% if item.statementType == statementType %} <th>{{ item._ }} ({{ item.coaItem }})</th> {% endif %} {% endfor %} {% endblock %}
上面代码的关键是
{% if item.statementType == statementType %}
我想传递statementType作为参数,我正在渲染块,像这样:
{% render block.table_headers with {'statementType': 'INC'} %}
但这不行.我想保持块和它的渲染在同一个文件(但不同的块),为概念的接近.
甚至可以使用这样的块吗?我看过Symfony2文档,找不到任何可以做到这一点的东西,但是对我来说似乎是一个明显的使用方法.
Symfony 2.2中的include标签有更新,可能会帮助您.以下是新标签的示例:
{{include(‘FTWGuildBundle:Help:popover.html.twig’,{‘content’:helpContent,’title’:helpTitle})}}
{{include(‘FTWGuildBundle:Help:popover.html.twig’,{‘content’:helpContent,’title’:helpTitle})}}
这可能是您需要的,因为它避免了必须向控制器执行子请求(render这样做)会更好的执行.
在我的例子中,我将HTML包含在一个帮助中,并提供标题和内容.