Отношение фильтра Silverstripe И вместо ИЛИ - PullRequest
0 голосов
/ 19 октября 2018

У меня есть пользовательский поиск с SilverStripe 3.5.6, который разбивает в массив все ключевые слова и возвращает только результаты, содержащие все слова, а не те, которые содержат одно из слов.

Это всего лишь небольшой фрагмент сценария, но именно так я использую функцию фильтра.

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

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

1 Ответ

0 голосов
/ 19 октября 2018

Вы можете создать каждый фильтр, добавив множество предложений AND Title LIKE '%keyword%' where следующим образом:

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