gpt4 book ai didi

php - Magento 集合 - 使用 addAttributeToFilter 的嵌套 where 子句

转载 作者:行者123 更新时间:2023-11-30 23:24:08 27 4
gpt4 key购买 nike

我正在尝试将多个过滤器添加到 magento 集合中,我可以在基本级别上执行此操作。我真正想做的是能够通过多个嵌套过滤器来过滤集合,这些过滤器可以是任何级别的深度。例如,我知道我可以使用如下代码添加多个过滤器:

$collection->addAttributeToFilter('example_attribute', array('eq' => 1));

我想要做的是拥有可以相互嵌套的过滤器 (AND & OR)。我不确定 Magento 集合是否已经允许您这样做,但我无法在网上找到任何示例。

为了提供更多细节和示例:我需要过滤一个集合,其中等效的 SQL(忽略我需要的选定字段和 JOINS)将是:

SELECT .........

WHERE

(attribute1 = 1
OR
atttribute2 = 'yes')

AND
qty > 5

AND(
(attribute3 != 'no'
AND
attribute4 = 50 )
OR
(attribute3 != 'no'
AND
attribute6 > 50 )
)

这只是一个粗略的示例,但基本问题是如何嵌套任意数量的过滤器。

最佳答案

您可以使用如下代码使用 OR 条件:

$collection->addAttributeToFilter(array(
array('attribute'=> 'someattribute','like' => 'value'),
array('attribute'=> 'otherattribute','like' => 'value'),
array('attribute'=> 'anotherattribute','like' => 'value'),
));

编辑:使用它,您应该至少能够在查询中执行 AND 和 OR 条件。似乎标准行为不允许嵌套的 AND OR 条件。所以我假设您需要为此编写一个自定义查询。如需进一步引用,请查看文件 Mage_Eav_Model_Entity_Collection_Abstract,其中定义了方法 addAttributeToFilter。

关于php - Magento 集合 - 使用 addAttributeToFilter 的嵌套 where 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14122133/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com