Symfony/Twig在if条件中设置变量

cmssoen2  于 2023-01-21  发布在  其他
关注(0)|答案(3)|浏览(174)

我知道这很琐碎,也不是那么重要,但它可以节省我的生命周期......您知道,您可以在PHP的if块中声明变量

if( $row = $sql->fetch ){
    //do something with the $row if $row = null this part is skipped
}

在twig中,我不能这样做,例如(设置image = object.image,如果我的对象没有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 %}

当然,我知道这不是第一世界的问题,你可能认为我的问题是无用的,但我不得不写这些"更长"的语句一天很多次,所以我可以在最后快几分钟,所以有没有一个语法,让我设置变量在一个如果块,而不是比较他们?
非常感谢

    • 编辑**

我不像这个Can I define a variable in a PHP if condition?只是在小枝

guicsvcw

guicsvcw1#

不可以,无法在if标签中声明变量。只能使用set标签设置变量。

nkoocmlb

nkoocmlb2#

您可以使用三元运算符设置它。
{% set result = condition ? "a": "b" %}

j2qf4p5b

j2qf4p5b3#

您可以使用(查看here以获取更多帮助):

{% if object.image is defined or object.image is not null %}
   <img src="{{ image.url }}">
{% endif %}

希望这有帮助!

相关问题