为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel where 子句在多个 orWhere 子句之后没有返回数据?

Laravel where 子句在多个 orWhere 子句之后没有返回数据?

PHP
Helenr 2022-07-29 12:35:18
我正在使用 laravel 6.10 版本,因为我正在实现搜索,我有 3 张桌子1) course_category2) course_sub_category3) 课程 [course_id_category(外键),course_sub_category_id(外键)]下面是我的代码$course = $request->searchItem;    if ($course=="") {        $Courses = DB::table('course')            ->join('course_category', 'course.course_category_id', '=', 'course_category.id')            ->select('course.*','course_category.title as category_title','course_category.thumb as category_thumb')            ->orderBy('course.title','asc')            ->paginate(15);    }    else{        $Courses = DB::table('course')            ->join('course_category', 'course.course_category_id', '=', 'course_category.id')            ->join('course_sub_category', 'course.course_sub_category_id', '=', 'course_sub_category.id')            ->select('course.*','course_category.title as category_title','course_category.thumb as category_thumb')            ->where('course.title', 'LIKE', '%'.$course.'%')            ->orWhere('course_category.title', 'LIKE', '%'.$course.'%')            ->orWhere('course_sub_category.title', 'LIKE', '%'.$course.'%')            ->get();    }当我返回值时,我正在获取 0 个数组,但是当我从现有的查询中删除一个或位置时,我的查询正在工作并且它的返回值我们所有的值都匹配意味着当我在 laravel 中使用多个 orWhere 时,我的 where 不起作用,请分享相同的解决方案。
查看完整描述

1 回答

?
狐的传说

TA贡献1804条经验 获得超3个赞

->orWhere不像典型的 SQL 那样工作。你应该这样使用它:


$Courses = DB::table('course')

            ->join('course_category', 'course.course_category_id', '=', 'course_category.id')

            ->join('course_sub_category', 'course.course_sub_category_id', '=', 'course_sub_category.id')

            ->select('course.*','course_category.title as category_title','course_category.thumb as category_thumb')

             ->where(function($query) use ($course){

    $query->where('course.title', 'LIKE', '%'.$course.'%')

    $query->orWhere('course_category.title', 'LIKE', '%'.$course.'%')

    $query->orWhere('course_sub_category.title', 'LIKE', '%'.$course.'%')

})

->get();


查看完整回答
反对 回复 2022-07-29
  • 1 回答
  • 0 关注
  • 112 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信