有条件地渲染带有回退的树枝变量
Conditionally render twig variable with fallback
是否可以尝试渲染变量并在它为假时使用回退?
我尝试了以下方法但没有成功:
<img src="{{ fields.icon.url || post.thumbnail.src }}" />
<img src="{{ fields.icon.url or post.thumbnail.src }}" />
使用or
会导致结果输出变成布尔值1
或0
.
您可以使用 default
过滤器
The default
filter returns the passed default value if the value is
undefined
or empty
, otherwise the value of the variable:
示例https://twigfiddle.com/hsniy6/2
<img src="{{ fields.icon.url|default(post.thumbnail.src) }}" />
或者,您也可以使用 ternary operators ?:
或空合并 ??
运算符。
三元运算符 ?:
等价于 is not empty
.
空合并运算符仅在前导变量为 undefined
、null
且等效于 is same as(null)
时才起作用。
<img src="{{ fields.icon.url ?: post.thumbnail.src }}" />
<img src="{{ fields.icon.url ?? post.thumbnail.src }}" />
是否可以尝试渲染变量并在它为假时使用回退?
我尝试了以下方法但没有成功:
<img src="{{ fields.icon.url || post.thumbnail.src }}" />
<img src="{{ fields.icon.url or post.thumbnail.src }}" />
使用or
会导致结果输出变成布尔值1
或0
.
您可以使用 default
过滤器
The
default
filter returns the passed default value if the value isundefined
orempty
, otherwise the value of the variable:
示例https://twigfiddle.com/hsniy6/2
<img src="{{ fields.icon.url|default(post.thumbnail.src) }}" />
或者,您也可以使用 ternary operators ?:
或空合并 ??
运算符。
三元运算符 ?:
等价于 is not empty
.
空合并运算符仅在前导变量为 undefined
、null
且等效于 is same as(null)
时才起作用。
<img src="{{ fields.icon.url ?: post.thumbnail.src }}" />
<img src="{{ fields.icon.url ?? post.thumbnail.src }}" />