get("status", "0"); $query = Programs::query()->with(["appends", "video_pivots.video"])->where("status", $status, 0)->orderByDesc("created_at"); $programs = $query->paginate(10)->withQueryString();; return view("program.construct.index", [ "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