Arrays 细枝-变量==objectattribute

Arrays 细枝-变量==objectattribute,arrays,symfony,for-loop,twig,Arrays,Symfony,For Loop,Twig,我对Twig和Symfony2(以及PHP)是新手。我目前有一个对象数组,可以通过在{for result in results}语句之后执行{{result.attribute1}来访问属性 我想使用变量{{var | removePath}}(其中removePath是我在Twig中做的扩展),并使用它迭代结果数组。我想做的是,如果{{var | removePath}}==result.attribute1,则返回行 这可以在小树枝上做吗?如果是,我应该如何处理?我已经尝试过类似下面的代码

我对Twig和Symfony2(以及PHP)是新手。我目前有一个对象数组,可以通过在{for result in results}语句之后执行{{result.attribute1}来访问属性

我想使用变量{{var | removePath}}(其中removePath是我在Twig中做的扩展),并使用它迭代结果数组。我想做的是,如果{{var | removePath}}==result.attribute1,则返回行

这可以在小树枝上做吗?如果是,我应该如何处理?我已经尝试过类似下面的代码,但是执行了“else”语句(表示不匹配)。我还尝试了
var==result.attribute
,但也没有成功

{% for result in results %} 
{% if var|removePath in result.attribute1 %}
   {{ var | removePath }} exists.
{% else %}
   {{ var | removePath }} doesn't exist in array.
{% endif %}{% endfor %}
因此,我想我有两个问题

1) 在细枝中是否可能(如果可能,如何实现)

2) 是否有更简单/更好的方法获取整行(对象数组还包含属性2、3和4,我想返回与属性1相同的属性(如果它与var匹配))

最近添加的


提前感谢您的帮助!我希望我的问题是可以理解的:S

用括号括住这个表达

使用
(var | removePath)
对表达式进行分组

例如:

{% if ( 1+1 ) == 2 %}
您还可以使用
attribute()
函数访问对象/数组的属性和方法

{{ attribute(object, method) }}
{{ attribute(object, method, arguments) }}
{{ attribute(array, item) }}
在树枝上

使用三元运算符进一步缩短模板代码,如下所示:

{% set strippedVar = var|removePath %}
{{ strippedVar }}{{ (strippedVar in result.attribute1) ? 'exists' : 'does not exist' }}.

将筛选变量设置为另一个变量会阻止多次执行筛选。

不幸的是,这对我不起作用。我仍然在页面上打印“数组中不存在”。您的
var
变量是什么?您的“属性”是保存对象的数组的数组键吗?
var | removePath
的结果是什么类型的?谢谢您的建议!我尝试了三元运算符,它可以工作(没有错误消息),但是“不存在”仍然显示(因此仍然没有匹配)。我已经显示了var | removePath和打印了所有result.attribute1,我发现有一个相同的匹配项。不确定它为什么看不到它:什么类型是
result.attribute1
,数组?var=当前页面的url(result.attribute1也=url)。结果的键是索引(0,1,2,3…)。结果数组的键是attribute1、attribute2、attribute3(该序列对结果中的每个键都重复)。(很抱歉,花了这么长时间,必须查看如何检查)。单个“=”运算符给了我一个值为“=”(“预期”语句块结尾)的错误“意外标记”运算符”。