Silverstripe过滤器关系AND而不是OR

时间:2018-10-19 13:54:40

标签: php mysql silverstripe

我使用SilverStripe 3.5.6进行了自定义搜索,该搜索将所有关键字分解为一个数组,并且仅返回包含所有单词的结果,而不返回包含其中一个单词的结果。

这只是脚本的一小部分,但这就是我使用过滤器功能的方式。

foreach($keywords as $keyword) {
    $search_terms_title['Title:PartialMatch'][] = $keyword;
}

Page::get()->filter($search_terms_title)

1 个答案:

答案 0 :(得分:1)

您可以构建每个过滤器,并添加许多AND Title LIKE '%keyword%' where子句,如下所示:

$pages = Page::get()
foreach($keywords as $keyword) {
    $pages = $pages->filter('Title:PartialMatch', $keyword);
}