将twig var定义为true,其值为' 1'。
将另一个var定义为false,它没有值。那是为什么?
{% set myOtherVar = true %}
{{ myOtherVar }}
这会输出' 1'
{% set myVar = false %}
{{ myVar }}
输出nada
这很麻烦,因为像这样的简单逻辑失败了:
{% set myVar = false %}
{% if myVar is not empty and not myVar %}
stuff
{% endif %}
答案 0 :(得分:1)
因为您使用set将变量设置为布尔值。所以你需要将它用作布尔值。您无法打印该值。
你可能会做这样的逻辑:
{% set myOtherVar = true %}
{% set myVar = false %}
{% if not myVar %}
myVar is false
{% endif %}
{% if myOtherVar %}
myOtherVar is true
{% endif %}
这是一个显示它正常工作的小提琴:
希望有所帮助!
答案 1 :(得分:1)
false
相当于''
的{{1}}:
empty
根据您要执行的操作,您可以使用defined
测试变量是否存在:
{% set myVar = '' %}
{% if myVar is empty %}
stuff
{% endif %}
{% set myOtherVar = false %}
{% if myVar is empty %}
other stuff
{% endif %}