有没有一种方法可以在Twig模板中编写多行代码?
问题描述:
如果我有这样的代码块:有没有一种方法可以在Twig模板中编写多行代码?
{% if app.user is defined %}
{% set isOwner = user.isEqualTo(app.user) %}
{% else %}
{% set isOwner = false %}
{% endif %}
是否有可能把它写不包装在标签中的每一行,也是这样吗?
{% if app.user is defined
set isOwner = user.isEqualTo(app.user)
else
set isOwner = false
endif %}
上面的代码显然不起作用,因为没有行结束符。添加;
也不起作用。
如果线条很多,事情会变得非常复杂。
更新:
虽然DarkBee的回答是缩短语法,警惕传递null到可以期待一个特定的类的对象方法的方式。我们最终与去代码的最终版本比原来的问题也不遑多让,但至少少了一个行:
{% set isOwner = false %}
{% if app.user is not null %}
{% set isOwner = user.isEqualTo(app.user) %}
{% endif %}
这样,布尔标志总是设置和方法从未收到null目的。另外,如果您担心会有额外的空间蔓延到您的HTML中(作为缩进的结果),那么避免这种情况的最好方法是将整段代码包装到{% spaceless %}...{% endspaceless %}
标记中。
@DarkBee这也很有趣! – aalaap
@DarkBee我希望你已经发布了这个答案! – aalaap
小心你想要什么 – DarkBee