From a998d7132f2ddfadf5a6c7ad185b766f0feac9bb Mon Sep 17 00:00:00 2001 From: shibafu Date: Sat, 16 Mar 2019 12:22:07 +0900 Subject: [PATCH] =?UTF-8?q?=E3=83=90=E3=83=AA=E3=83=87=E3=83=BC=E3=82=B7?= =?UTF-8?q?=E3=83=A7=E3=83=B3=E3=82=92FormRequest=E3=81=A7=E8=A1=8C?= =?UTF-8?q?=E3=81=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Controllers/Admin/InfoController.php | 20 ++--------- app/Http/Requests/AdminInfoStoreRequest.php | 35 +++++++++++++++++++ 2 files changed, 38 insertions(+), 17 deletions(-) create mode 100644 app/Http/Requests/AdminInfoStoreRequest.php diff --git a/app/Http/Controllers/Admin/InfoController.php b/app/Http/Controllers/Admin/InfoController.php index a11bf74..faf2909 100644 --- a/app/Http/Controllers/Admin/InfoController.php +++ b/app/Http/Controllers/Admin/InfoController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; +use App\Http\Requests\AdminInfoStoreRequest; use App\Information; use Illuminate\Http\Request; use Illuminate\Support\Facades\Validator; @@ -31,21 +32,13 @@ class InfoController extends Controller ]); } - public function store(Request $request) + public function store(AdminInfoStoreRequest $request) { $inputs = $request->all(); if (!$request->has('pinned')) { $inputs['pinned'] = false; } - // TODO: #updateと全く同じだし、フォームリクエストにしたほうがよいのでは? - Validator::make($inputs, [ - 'category' => ['required', Rule::in(array_keys(Information::CATEGORIES))], - 'pinned' => 'nullable|boolean', - 'title' => 'required|string|max:255', - 'content' => 'required|string|max:10000' - ])->validate(); - $info = Information::create($inputs); return redirect()->route('admin.info.edit', ['info' => $info])->with('status', 'お知らせを更新しました。'); @@ -61,20 +54,13 @@ class InfoController extends Controller ]); } - public function update(Request $request, Information $info) + public function update(AdminInfoStoreRequest $request, Information $info) { $inputs = $request->all(); if (!$request->has('pinned')) { $inputs['pinned'] = false; } - Validator::make($inputs, [ - 'category' => ['required', Rule::in(array_keys(Information::CATEGORIES))], - 'pinned' => 'nullable|boolean', - 'title' => 'required|string|max:255', - 'content' => 'required|string|max:10000' - ])->validate(); - $info->fill($inputs)->save(); return redirect()->route('admin.info.edit', ['info' => $info])->with('status', 'お知らせを更新しました。'); diff --git a/app/Http/Requests/AdminInfoStoreRequest.php b/app/Http/Requests/AdminInfoStoreRequest.php new file mode 100644 index 0000000..45b3d2e --- /dev/null +++ b/app/Http/Requests/AdminInfoStoreRequest.php @@ -0,0 +1,35 @@ + ['required', Rule::in(array_keys(Information::CATEGORIES))], + 'pinned' => 'nullable|boolean', + 'title' => 'required|string|max:255', + 'content' => 'required|string|max:10000' + ]; + } +}