Magento "addAttributeToFilter like" OR 语句不起作用

Magento "addAttributeToFilter like" with OR statement not working

我在做一个 Magento 项目,但我严重卡住了。

我想在我的查询中添加 2 LIKE 检查。

现在我的代码如下所示:

$this->_productCollection->addAttributeToFilter(
    array(
        array('attribute' => 'name', 'like' => '%'.$_GET["keyword"].'%'),
        array('attribute' => 'att_wine_alias', 'like' => '%'.$_GET["keyword"].'%')
    )
);

att_wine_alias: 有拼写错误或标签的文本区域

因此,如果我使用此代码,Magento 不会在 name 字段中进行搜索。如果我从过滤器中删除 att_wine_alias 属性,name 搜索工作正常。

我想使用 OR 语句在 字段 "like" 中搜索。

我做错了什么?

谢谢! // 抱歉英文错误

试试下面的代码,如果可行请告诉我

$this->_productCollection->addAttributeToFilter(
    array(
         array('attribute' => 'name', 'like' => $_GET["keyword"]),
         array('attribute' => 'att_wine_alias', 'like' => $_GET["keyword"])
    )
);

但是,addFieldToFilter 也是一个选项,其工作方式如下:

->addFieldToFilter(
    array('name', 'att_wine_alias'),
    array(
        array('like'=>'%' . $GET['keyword'] . '%'), 
        array('like'=>'%' . $GET['keyword'] . '%')
    )
 )

下面评论中提到的错误可能是由于 ReIndexing。您使用的是 Flat tables 吗?

以防万一,如果你是那么你可能想要 REINDEX 然后再试一次。

此外,这可能是因为代码在文件中的放置方式。如果您可以共享您尝试编写此代码的函数,将有助于调试它。

希望对您有所帮助!

快乐编码...