From 2e0e3de42c8a64d77438b4528df22b98fc72e5ec Mon Sep 17 00:00:00 2001 From: BrettonYe <867057410@qq.com> Date: Wed, 28 Dec 2022 10:23:33 +0800 Subject: [PATCH] Add Article filters to improve admin experience --- .../Controllers/Admin/ArticleController.php | 14 +++++- .../Controllers/Admin/SubscribeController.php | 2 +- resources/views/admin/article/index.blade.php | 46 ++++++++++++++++++- 3 files changed, 57 insertions(+), 5 deletions(-) diff --git a/app/Http/Controllers/Admin/ArticleController.php b/app/Http/Controllers/Admin/ArticleController.php index 2b02683c..5dc401b7 100644 --- a/app/Http/Controllers/Admin/ArticleController.php +++ b/app/Http/Controllers/Admin/ArticleController.php @@ -7,15 +7,25 @@ use App\Http\Requests\Admin\ArticleRequest; use App\Models\Article; use App\Services\ArticleService; use Exception; +use Illuminate\Http\Request; use Illuminate\Http\UploadedFile; use Log; use Str; class ArticleController extends Controller { - public function index() + public function index(Request $request) { // 文章列表 - return view('admin.article.index', ['articles' => Article::latest()->orderByDesc('sort')->paginate()->appends(request('page'))]); + $categories = Article::whereNotNull('category')->distinct()->get('category'); + $articles = Article::query(); + foreach (['id', 'category', 'language', 'type'] as $field) { + $request->whenFilled($field, function ($value) use ($articles, $field) { + $articles->where($field, $value); + }); + } + $articles = $articles->latest()->orderByDesc('sort')->paginate()->appends($request->except('page')); + + return view('admin.article.index', compact('articles', 'categories')); } public function store(ArticleRequest $request) diff --git a/app/Http/Controllers/Admin/SubscribeController.php b/app/Http/Controllers/Admin/SubscribeController.php index d324e570..fdbc1c20 100644 --- a/app/Http/Controllers/Admin/SubscribeController.php +++ b/app/Http/Controllers/Admin/SubscribeController.php @@ -53,7 +53,7 @@ class SubscribeController extends Controller $query->whereBetween('request_time', [$request->input('start').' 00:00:00', $request->input('end').' 23:59:59']); } - $subscribeLogs = $query->latest()->paginate(20)->appends(\request('page')); + $subscribeLogs = $query->latest()->paginate(20)->appends($request->except('page')); foreach ($subscribeLogs as $log) { // 跳过上报多IP的 if ($log->request_ip) { diff --git a/resources/views/admin/article/index.blade.php b/resources/views/admin/article/index.blade.php index 4b9638d9..15717fb3 100644 --- a/resources/views/admin/article/index.blade.php +++ b/resources/views/admin/article/index.blade.php @@ -14,6 +14,40 @@ @endcan