支持追加内容,补充大部分地方的SubQuery提示

This commit is contained in:
Jerry Yan 2022-08-10 22:25:45 +08:00
parent fb132cc088
commit 4b3e614a2d
4 changed files with 20 additions and 7 deletions

View File

@ -4,6 +4,7 @@ namespace App\Http\Controllers;
use App\Models\VideoDanmakus; use App\Models\VideoDanmakus;
use App\Models\Videos; use App\Models\Videos;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Routing\Controller as BaseController; use Illuminate\Routing\Controller as BaseController;
@ -29,7 +30,7 @@ class DanmakuQueryController extends BaseController
$keyword_split = explode(" ", $keyword); $keyword_split = explode(" ", $keyword);
foreach ($keyword_split as $_keyword) { foreach ($keyword_split as $_keyword) {
if (mb_strlen(trim($_keyword)) > 0) { 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"); $_query->where("content", "like", "%{$_keyword}%", "or")->where("from", "like", "%${_keyword}%", "or");
}); });
} }

View File

@ -3,6 +3,7 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use App\Models\Programs; use App\Models\Programs;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Routing\Controller as BaseController; use Illuminate\Routing\Controller as BaseController;
@ -15,15 +16,25 @@ class ProgramQueryController extends BaseController
$keyword_split = explode(" ", $keyword); $keyword_split = explode(" ", $keyword);
foreach ($keyword_split as $_keyword) { foreach ($keyword_split as $_keyword) {
if (mb_strlen(trim($_keyword)) > 0) { if (mb_strlen(trim($_keyword)) > 0) {
$query->where(function ($_query) use ($_keyword) { $query->where(function (Builder $_query) use ($_keyword) {
$_query $_query
->where("name", "like", "%{$_keyword}%", "or") ->where("name", "like", "%{$_keyword}%")
->where("difficulty", "like", "%{$_keyword}%", "or") ->orWhere("difficulty", "like", "%{$_keyword}%")
->where("desc", "like", "%${_keyword}%", "or"); ->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(); $programs = $query->paginate(10)->withQueryString();
return view("program.index", [ return view("program.index", [
"keyword" => $keyword, "keyword" => $keyword,

View File

@ -4,6 +4,7 @@ namespace App\Http\Controllers;
use App\Models\Programs; use App\Models\Programs;
use App\Models\ProgramVideos; use App\Models\ProgramVideos;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Routing\Controller as BaseController; use Illuminate\Routing\Controller as BaseController;
use Illuminate\Support\Carbon; use Illuminate\Support\Carbon;
@ -129,7 +130,7 @@ class ProgramVideoConstructController extends BaseController
$program_videos = ProgramVideos::query() $program_videos = ProgramVideos::query()
->where("video_bvid", "=", $program_video->video_bvid) ->where("video_bvid", "=", $program_video->video_bvid)
->where("id", "!=", $program_video->id) ->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); $query->where("created_at", ">", $program_video->created_at)->orWhere("created_at", "=", null);
}) })
->get(); ->get();

View File

@ -9,7 +9,7 @@
@include("common.header") @include("common.header")
<div class="font-bold">数据待补充完整,需要查较为久远的节目,请先点击上方节目单查询</div> <div class="font-bold">数据待补充完整,需要查较为久远的节目,请先点击上方节目单查询</div>
<form class="form" action=""> <form class="form" action="">
<label for="keyword">查找节目关键词,空格隔开查找多个关键词,暂不支持通过点播老板搜索</label> <label for="keyword">查找节目关键词,空格隔开查找多个关键词,支持通过点播老板或追加内容搜索</label>
<input class="border border-black" type="text" name="keyword" id="keyword" value="{{$keyword}}"> <input class="border border-black" type="text" name="keyword" id="keyword" value="{{$keyword}}">
<input class="border border-black" type="submit"> <input class="border border-black" type="submit">
</form> </form>