get("keyword", ""); $query = Programs::query()->with(["appends", "video_pivots.video"])->where("status", "=", 1)->orderByDesc("created_at"); if ($keyword) { $keyword_split = explode(" ", $keyword); foreach ($keyword_split as $_keyword) { $_keyword = trim($_keyword); if (mb_strlen($_keyword) > 0) { $query->where(function (Builder $_query) use ($_keyword) { $_query ->where("name", "like", "%{$_keyword}%") ->orWhere("difficulty", "like", "%{$_keyword}%") ->orWhere("desc", "like", "%{$_keyword}%") ->orWhereHas("appends", function (Builder $__query) use ($_keyword) { $__query->where("from", "like", "%{$_keyword}%"); $__query->orWhere(function (Builder $sub_query) use ($_keyword) { $sub_query ->where("is_original", "=", 0) ->where("name", "like", "%{$_keyword}%"); }); }) ; }); } } } $programs = $query->paginate(10)->withQueryString(); return view("program.index", [ "keyword" => $keyword, "programs"=>$programs, ]); } public function videos(Request $request, Programs $program) { return view("program.video.index", [ "program" => $program, "videos" => $program->video_pivots, ]); } }