get("keyword", ""); $status = $request->get("status", "0"); $query = Programs::query()->with(["appends", "video_pivots.video"])->where("status", $status, 0)->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}%"); }); } } } $programs = $query->paginate(10)->withQueryString();; return view("program.construct.index", [ "keyword" => $keyword, "programs"=>$programs, ]); } public function add(Request $request) { return view("program.construct.create", [ "program"=>new Programs() ]); } public function from_comment(Request $request, VideoComments $comment) { return redirect(route("program.construct.batch_add"))->withInput([ "bvid"=>$comment->video->bvid, "content"=>$comment->content ]); } public function batch_add(Request $request) { return view("program.construct.batch_add"); } public function edit(Request $request, Programs $program) { return view("program.construct.create", [ "program"=>$program ]); } // endregion // region Form Submit public function create(Request $request) { $request->validate([ "name" => ["required"] ]); $program = new Programs(); $createPayload = $request->only(["name", "difficulty", "desc"]); $program->fill($createPayload); $program->status = $request->post("status", 0); $program->save(); return redirect(route("program.construct.edit", ["program"=>$program->id])); } public function batch_create(Request $request) { $request->validate([ 'bvid' => ['required'], 'content' => ['required'], ]); $bvid = $request->post("bvid"); $content = $request->post("content"); $count = ProgramVideos::query()->where("video_bvid", "=", $bvid)->count(); if ($count > 0) { return back()->withInput()->withErrors([ "bvid" => "该BVID下已有{$count}个节目关联,请手动添加" ]); } $regex = "/^(p(?P\d{1,2})[-# _:,)]+)?(?P