Magento“addAttributeToFilter like”,OR语句不起作用

时间:2016-01-20 08:38:05

标签: php magento filter sql-like addattribute

我参与了一个Magento项目,但我认真地坚持了下来。

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

现在我的代码看起来像这样:

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

att_wine_alias : 带有拼写错误或标签的textarea

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

我想使用OR语句在字段中搜索“like”

我做错了什么?

谢谢! //对不起英语错误

1 个答案:

答案 0 :(得分:1)

尝试使用下面的代码,让我知道这是否有效

$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。你在使用平桌吗?

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

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

希望这有帮助!

快乐编码......