我正在尝试使用搜索词过滤数据。但它不会填充数据。任何人都可以帮助我吗?这是我的代码:
$query = Lesson::select('lesson.*')
->join('lesson_language', 'lesson_language.lesson_id', 'lesson.id')
->leftJoin('content', 'content.lesson_id', 'lesson.id')
->leftJoin('lesson_role', 'lesson_role.lesson_id', 'lesson.id')
->leftJoin('lesson_brand', 'lesson_brand.lesson_id', 'lesson.id')
->leftJoin('lesson_category', 'lesson_category.lesson_id', 'lesson.id');
// filter by search term
if(isset($request['search_term']) && $request['search_term'] != '') {
$term = strtolower($request['search_term']);
$term = str_replace('"', '', str_replace("'", '', $term));
if((clone $query)->where('lesson_language.name', 'LIKE', "{$term}%")->count()) {
$query->where('lesson_language.name', 'LIKE', "{$term}%");
}
else {
$searchValues = preg_split('/\s+/', $term, -1, PREG_SPLIT_NO_EMPTY);
$query->where(function ($q) use ($term) {
$q->orWhere('lesson_language.name', 'LIKE', "%{$term}%")
->orWhere('lesson.content_skus', 'LIKE', "%{$term}%");
// ->orWhere('lesson.content_terms', 'LIKE', "%{$subTerm}%")
// ->orWhere('lesson.id', $subTerm);
});
}
}
这个 else 语句不起作用。这是它的 sql 查询。
`` 选择
lesson
。*从lesson
内部连接lesson_language
在lesson_language
。 . lesson_id
左连接lesson
在id
.content
= content
.lesson_id
左连接lesson
在id
.lesson_role
= lesson_role
.lesson_id
左连接 lesson
上*
``
谁能帮帮我?
我正在尝试搜索“洗衣机和烘干机维护”,并且该记录存在于数据库中。但它不取。