相关疑难解决方法(0)

在Twig中,检查是否存在数组的特定键

在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)

由于将数据传递到模板的主要方法之一是使用数组,似乎应该有一些方法来做到这一点.有什么想法吗?

php arrays conditional short-circuiting twig

68
推荐指数
2
解决办法
8万
查看次数

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

我知道这真的很简单而且不那么重要但它可以节省我一些生命...你知道你可以在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条件中定义一个变量吗?只是在树枝上

symfony twig

5
推荐指数
2
解决办法
5001
查看次数

如何检查变量在twig和定义的值中是否等于零

这似乎是一个非常基本的问题,但我向你保证,我已经开始运行各种解决方案,但仍然无法找到解决方案.

问题是这样的:

  1. 通过选择框将使用值1,0或null设置树枝值,然后该值将用于设置该框的选定值.

  2. 选择了两个过滤器 - 1表示活动,0表示不活动.

  3. 如果未设置任何值且将twig值设置为空(null),则始终选择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,而不是字符串.

任何帮助是极大的赞赏.

php twig

4
推荐指数
2
解决办法
1万
查看次数

标签 统计

twig ×3

php ×2

arrays ×1

conditional ×1

short-circuiting ×1

symfony ×1