php - Silverstripe 过滤器关系 AND 而不是 OR
问题描述
我有一个使用 SilverStripe 3.5.6 的自定义搜索,它将所有关键字分解为一个数组,并且只返回包含所有单词的结果,而不是包含其中一个单词的结果。
这只是脚本的一小部分,但这就是我使用过滤器功能的方式。
foreach($keywords as $keyword) {
$search_terms_title['Title:PartialMatch'][] = $keyword;
}
Page::get()->filter($search_terms_title)
解决方案
您可以构建每个过滤器,添加许多AND Title LIKE '%keyword%'
where 子句,如下所示:
$pages = Page::get()
foreach($keywords as $keyword) {
$pages = $pages->filter('Title:PartialMatch', $keyword);
}
推荐阅读
- xml - 将 XML 解组为结构时的空结果
- git - 如何在 Jenkins 多分支管道中参数化 Git URL?
- javascript - 如何在页面加载时在输入框中加载值 - JS
- python - 使用 dt.datetime Python 格式化
- servlets - 一些基本的 Java WebApplication/Servlet 需要的建议
- javascript - Firestore 安全规则不允许两个 uid 访问文档
- reactjs - 如何在反应中从谷歌地图方向中删除以前的路线?
- amazon-web-services - 如何从 .configuration 文件加载配置文件并根据角色 arn 承担角色?
- python - 无法打开需求文件:[Errno 2] 没有这样的文件或目录:'requirements.txt'
- android - 使用 BottomNavigationView 时如何仅显示片段区域?