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

Rob*_*ach 5 symfony twig

我知道这真的很简单而且不那么重要但它可以节省我一些生命...你知道你可以在if块中用PHP声明变量

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

在twig我不能做例如(set image = object.image,如果我的对象没有图像,变量图像变为null并且if语句不会变为true

{% if image = object.image %}
    <img src="{{ image.getUrl() }}"> //and so on
{% endif %}
Run Code Online (Sandbox Code Playgroud)

相反,我必须这样做(检查对象是否有图像,如果是,将它保存到新变量并用它做一些事情)

{% if object.image %}
    {% set image = object.image %}
    <img src="{{ image.getUrl() }}"> //and so on
{% endif %}
Run Code Online (Sandbox Code Playgroud)

当然我知道这不是第一个世界问题,你可能认为我的问题没用,但我必须每天多次写出那些"更长"的陈述,所以最后我会快几分钟.那么是否有一种语法允许我在if块中设置变量而不是比较它们?

非常感谢你

编辑我不
一样这样我可以在PHP if条件中定义一个变量吗?只是在树枝上

xab*_*buh 6

不,没有办法在if标签内声明变量.只能使用set标签设置变量.


小智 6

您可以使用三元运算符来设置它。

{% set result = condition ? "a": "b" %}