lubo_comment_query/app/Http/Controllers/ProgramQueryController.php

41 lines
1.4 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\Programs;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller as BaseController;
class ProgramQueryController extends BaseController
{
public function index(Request $request) {
$keyword = $request->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) {
if (mb_strlen(trim($_keyword)) > 0) {
$query->where(function ($_query) use ($_keyword) {
$_query
->where("name", "like", "%{$_keyword}%", "or")
->where("difficulty", "like", "%{$_keyword}%", "or")
->where("desc", "like", "%${_keyword}%", "or");
});
}
}
}
$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,
]);
}
}