【问题标题】:addAttributeToFilter and OR condition in Magento's CollectionMagento 集合中的 addAttributeToFilter 和 OR 条件
【发布时间】:2011-07-15 03:31:26
【问题描述】:

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

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

但我想为 OR 条件使用几个属性。

喜欢:

$collection->addAttributeToFilter('someattribute', array('like' => 'value'));`

$collection->addAttributeToFilter('otherattribute', array('like' => 'value'));`

获取“someattribute”“otherattribute”设置为“value”的产品

有可能吗?

【问题讨论】:

    标签: php collections magento attributes


    【解决方案1】:

    是的。

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

    【讨论】:

    • 请注意,此语法不适用于 addFieldToFilter,请参阅 stackoverflow.com/a/7851884/336905 了解该语法
    • 你能不能给出最通用的链接,人们不得不费力地搜索才能找到东西?
    • 感谢您关注@ahnbizcad,这篇文章太老了。 Magento 更改了链接的位置。
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      实现“或”的另一件事是:

      ->addFieldToFilter(
           'type_id',
           ['in' => ['simple', 'configurable']]
      )
      

      【讨论】:

        【解决方案4】:

        对于 addAttributeToFilter:

        $collections = Mage::getModel('sales/order')->getCollection()
                     ->addAttributeToFilter('increment_id', array('in' => $sellerIncrementIds))
                     ->addAttributeToFilter('status', ['in' => ['pending','pending_seller_confirmation']]);
        

        【讨论】:

          猜你喜欢
          • 2012-07-02
          • 2014-11-23
          • 1970-01-01
          • 1970-01-01
          • 2014-02-17
          • 2016-04-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多