【发布时间】:2017-08-04 13:21:49
【问题描述】:
我知道这真的很微不足道,并不那么重要,但它可以为我节省一些生命...... 你知道你可以在 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 块中设置变量而不是比较它们?
非常感谢
编辑
我不喜欢这个Can I define a variable in a PHP if condition? 只是在树枝上
【问题讨论】:
-
如果你有很多相同的代码,你应该考虑使用包含/宏的/扩展树枝
Twig_SimpleFunction或Twig_SimpleFilter -
你能发布一个现实生活中的例子,没有“等等”,让你的问题更明显吗?
-
你可以去掉set部分,直接用
<img src="{{ object.image.url }}"> -
@mickdev 我知道,但我们大多有很长的结构,所以最后我会得到类似
entry->lnkSomeFieldName->first()->lnkCategory->first()->image->first()->getUrl()的东西,如果我不这样分开的话,标题也一样 -