在PHP中,我们可以使用该函数检查数组中是否存在键array_key_exists().
在Twig模板语言中,我们可以通过使用if语句来检查变量或对象的属性是否存在,如下所示:
{% if app.user %}
do something here
{% else %}
do something else
{% endif %}
Run Code Online (Sandbox Code Playgroud)
但是我们如何使用Twig 检查数组的键是否存在?我试过了{% if array.key %},但它给了我一个错误:
Key "key" for array with keys "0, 1, 2, 3...648" does not exist
Run Code Online (Sandbox Code Playgroud)
由于将数据传递到模板的主要方法之一是使用数组,似乎应该有一些方法来做到这一点.有什么想法吗?
我知道这真的很简单而且不那么重要但它可以节省我一些生命...你知道你可以在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条件中定义一个变量吗?只是在树枝上
这似乎是一个非常基本的问题,但我向你保证,我已经开始运行各种解决方案,但仍然无法找到解决方案.
问题是这样的:
通过选择框将使用值1,0或null设置树枝值,然后该值将用于设置该框的选定值.
选择了两个过滤器 - 1表示活动,0表示不活动.
有问题的树枝代码如下:
<option value="null">Select an Option</option>
<option value="1"{% if filterStatus == 1 %} selected{% endif %}>Active</option>
<option value="0"{% if filterStatus == 0 %} selected{% endif %}>Inactive</option>
是我期望使用的.以下是我尝试过的众多变化之一:
{% if filterStatus == 0 and not filterStatus != 'null' %}
Run Code Online (Sandbox Code Playgroud)
我似乎无法确保值为0.
也不要被选项值属性中的"null"值所迷惑.这用于路由,但转换为系统中的文字NULL,而不是字符串.
任何帮助是极大的赞赏.