1

我从事 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” 。

我做错了什么?

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

4

1 回答 1

2

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

$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'] . '%')
    )
 )

下面评论中提到的错误可能是由于重新索引。你在使用平板吗?

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

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

希望这可以帮助!

快乐的编码...

于 2016-01-20T13:27:40.423 回答