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 然后再试一次。
此外,这可能是因为代码在文件中的放置方式。如果您可以共享您尝试编写此代码的函数,将有助于调试它。
希望对您有所帮助!
快乐编码...
我在做一个 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 然后再试一次。
此外,这可能是因为代码在文件中的放置方式。如果您可以共享您尝试编写此代码的函数,将有助于调试它。
希望对您有所帮助!
快乐编码...