我知道这确实是微不足道的,也不是那么重要,但它可以节省我的一生...... 您知道可以在 PHP 中的 if 块中声明变量
if( $row = $sql->fetch ){
//do something with the $row if $row = null this part is skipped
}
在 twig 中我不能这样做(设置 image = object.image,如果我的对象没有图像,则变量 image 变为 null 并且 if 语句不会变为 true
{% if image = object.image %}
<img src="{{ image.getUrl() }}"> //and so on
{% endif %}
相反,我必须这样做(检查对象是否有图像,如果是,则将其保存到新变量并用它做一些事情)
{% if object.image %}
{% set image = object.image %}
<img src="{{ image.getUrl() }}"> //and so on
{% endif %}
当然,我知道这不是第一世界的问题,你可能认为我的问题毫无用处,但我必须每天多次写那些“更长”的陈述,这样我最终可以快几分钟。 那么是否有一种语法允许我在 if 块中设置变量而不是比较它们?
非常感谢
编辑
我和这个不一样我可以在 PHP if 条件中定义一个变量吗?只是在 twig 中
不,无法在
if
标签内声明变量。只能使用 set
标签设置变量。
可以用三元运算符来设置。
{% set result = condition ? "a": "b" %}
根据条件设置变量是绝对可能的!
{% set variable = (condition == 1) ? 'this' : 'that' %}
可以根据
true
、false
或其他变量来评估条件。
您可以使用(查看此处以获得更多帮助):
{% if object.image is defined or object.image is not null %}
<img src="{{ image.url }}">
{% endif %}
希望这有帮助!