From 4b3e614a2d234eda8eb4f62e9858828b52b00a62 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Wed, 10 Aug 2022 22:25:45 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=E8=BF=BD=E5=8A=A0=E5=86=85?= =?UTF-8?q?=E5=AE=B9=EF=BC=8C=E8=A1=A5=E5=85=85=E5=A4=A7=E9=83=A8=E5=88=86?= =?UTF-8?q?=E5=9C=B0=E6=96=B9=E7=9A=84SubQuery=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/DanmakuQueryController.php | 3 ++- .../Controllers/ProgramQueryController.php | 19 +++++++++++++++---- .../ProgramVideoConstructController.php | 3 ++- resources/views/program/index.blade.php | 2 +- 4 files changed, 20 insertions(+), 7 deletions(-) diff --git a/app/Http/Controllers/DanmakuQueryController.php b/app/Http/Controllers/DanmakuQueryController.php index aa461e1..c31164b 100644 --- a/app/Http/Controllers/DanmakuQueryController.php +++ b/app/Http/Controllers/DanmakuQueryController.php @@ -4,6 +4,7 @@ namespace App\Http\Controllers; use App\Models\VideoDanmakus; use App\Models\Videos; +use Illuminate\Database\Eloquent\Builder; use Illuminate\Http\Request; use Illuminate\Routing\Controller as BaseController; @@ -29,7 +30,7 @@ class DanmakuQueryController extends BaseController $keyword_split = explode(" ", $keyword); foreach ($keyword_split as $_keyword) { if (mb_strlen(trim($_keyword)) > 0) { - $query->where(function ($_query) use ($_keyword) { + $query->where(function (Builder $_query) use ($_keyword) { $_query->where("content", "like", "%{$_keyword}%", "or")->where("from", "like", "%${_keyword}%", "or"); }); } diff --git a/app/Http/Controllers/ProgramQueryController.php b/app/Http/Controllers/ProgramQueryController.php index 0adf5a4..b1a2498 100644 --- a/app/Http/Controllers/ProgramQueryController.php +++ b/app/Http/Controllers/ProgramQueryController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers; use App\Models\Programs; +use Illuminate\Database\Eloquent\Builder; use Illuminate\Http\Request; use Illuminate\Routing\Controller as BaseController; @@ -15,15 +16,25 @@ class ProgramQueryController extends BaseController $keyword_split = explode(" ", $keyword); foreach ($keyword_split as $_keyword) { if (mb_strlen(trim($_keyword)) > 0) { - $query->where(function ($_query) use ($_keyword) { + $query->where(function (Builder $_query) use ($_keyword) { $_query - ->where("name", "like", "%{$_keyword}%", "or") - ->where("difficulty", "like", "%{$_keyword}%", "or") - ->where("desc", "like", "%${_keyword}%", "or"); + ->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}%"); + }); + }) + ; }); } } } + $query->dump(); $programs = $query->paginate(10)->withQueryString(); return view("program.index", [ "keyword" => $keyword, diff --git a/app/Http/Controllers/ProgramVideoConstructController.php b/app/Http/Controllers/ProgramVideoConstructController.php index 68ffa83..4b2cf35 100644 --- a/app/Http/Controllers/ProgramVideoConstructController.php +++ b/app/Http/Controllers/ProgramVideoConstructController.php @@ -4,6 +4,7 @@ namespace App\Http\Controllers; use App\Models\Programs; use App\Models\ProgramVideos; +use Illuminate\Database\Eloquent\Builder; use Illuminate\Http\Request; use Illuminate\Routing\Controller as BaseController; use Illuminate\Support\Carbon; @@ -129,7 +130,7 @@ class ProgramVideoConstructController extends BaseController $program_videos = ProgramVideos::query() ->where("video_bvid", "=", $program_video->video_bvid) ->where("id", "!=", $program_video->id) - ->where(function ($query) use ($program_video) { + ->where(function (Builder $query) use ($program_video) { $query->where("created_at", ">", $program_video->created_at)->orWhere("created_at", "=", null); }) ->get(); diff --git a/resources/views/program/index.blade.php b/resources/views/program/index.blade.php index cd6382f..f0e17ef 100644 --- a/resources/views/program/index.blade.php +++ b/resources/views/program/index.blade.php @@ -9,7 +9,7 @@ @include("common.header")