我目前在twig中编写了一些扩展,但是我无法确定为什么某个扩展应该作为标记或函数实现.
Twig的documentation列出了以下2个结构及其作用:
> {{}}:用于打印表达式评估的结果;
> {%%}:用于执行语句.
我计划实现与symfony2的embedded controllers类似的东西.
为什么该功能实现为:
{% render "AcmeDemoBundle:Demo:fancy" with { 'name': name, 'color': 'green' } %}
由于嵌入式控制器功能应返回所请求控制器的完全呈现模板,因此功能不是更合适吗?
render("AcmeDemoBundle:Demo:fancy", { 'name': name, 'color': 'green' });
最佳答案 我在同一个问题上受到了热烈的关注.由你来决定.
如果您使用{{}},则可以将过滤器应用于输出:{{render()| upper}}.如果您使用{%%},则您的扩展程序的输出将不会被“清理”(但您可以始终将{{}}与数组一起使用(‘is_safe’=>数组(‘all’)).
渲染是一个重要的结构.您可以在表达式中调用{{path()}}之类的函数:{{host~path()}}.