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不会在名称字段中搜索。如果我从过滤器中删除att_wine_alias属性,名称搜索工作正常。

我想使用 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'] . '%')
    )
 )

下面评论中提到的错误可能是因为重新索引。您是否使用平板?

以防万一,如果是,那么您可能需要重新索引,然后重试。

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

希望这有帮助!

快乐编码...