41 lines
1.4 KiB
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,
|
|
]);
|
|
}
|
|
}
|