Magento集合中的addAttributeToFilter和OR条件

Éri*_*icP 26 php collections attributes magento

我想根据不同属性的几个标准选择产品.

我知道如何使用 $collection->addAttributeToFilter('someattribute', array('like' => '%'));

但是我想对OR条件使用几个属性.

喜欢:

$collection->addAttributeToFilter('someattribute', array('like' => 'value'));`
Run Code Online (Sandbox Code Playgroud)

要么

$collection->addAttributeToFilter('otherattribute', array('like' => 'value'));`
Run Code Online (Sandbox Code Playgroud)

获得"某些属性" "分配"设置为"价值"的产品

可能吗?

Rit*_*ito 58

是的.

$collection->addAttributeToFilter(
    array(
        array('attribute' => 'someattribute', 'like' => 'value'),
        array('attribute' => 'otherattribute', 'like' => 'value'),
        array('attribute' => 'anotherattribute', 'like' => 'value'),
    )
);
Run Code Online (Sandbox Code Playgroud)

  • 请注意,此语法对于addFieldToFilter不正确,请参阅http://stackoverflow.com/a/7851884/336905以获取该语法 (15认同)
  • 感谢您注意到@ahnbizcad,这篇文章太旧了。Magento 已更改链接的位置。 (2认同)

小智 12

如果您希望对不使用EAV的集合使用相同的addFieldToFilter函数,则可以使用以下格式:

$collection->addFieldToFilter(
array(
   'someattribute',
   'otherattribute',
   'anotherattribute',
),
array(
    array('like' => 'value'),
    array('like' => 'value'),
    array('like' => 'value'),
));
Run Code Online (Sandbox Code Playgroud)