我使用SilverStripe 3.5.6进行了自定义搜索,该搜索将所有关键字分解为一个数组,并且仅返回包含所有单词的结果,而不返回包含其中一个单词的结果。
这只是脚本的一小部分,但这就是我使用过滤器功能的方式。
foreach($keywords as $keyword) {
$search_terms_title['Title:PartialMatch'][] = $keyword;
}
Page::get()->filter($search_terms_title)
答案 0 :(得分:1)
您可以构建每个过滤器,并添加许多AND Title LIKE '%keyword%'
where子句,如下所示:
$pages = Page::get()
foreach($keywords as $keyword) {
$pages = $pages->filter('Title:PartialMatch', $keyword);
}