From 2b8f80fe504d2a991047b148771a90e6dd790224 Mon Sep 17 00:00:00 2001 From: "kin.rinzen" Date: Fri, 10 Oct 2025 17:42:53 +0900 Subject: [PATCH] =?UTF-8?q?=E3=80=8C=E6=8C=87=E6=91=98=E5=AF=BE=E5=BF=9C?= =?UTF-8?q?=E3=80=8D=E8=BB=8A=E7=A8=AE=E5=8C=BA=E5=88=86=E3=83=9E=E3=82=B9?= =?UTF-8?q?=E3=82=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/Admin/PsectionController.php | 105 +++++++++++------- resources/lang/ja/validation.php | 2 +- resources/views/admin/opes/_form.blade.php | 32 +++--- .../views/admin/psection/_form.blade.php | 90 ++++++++------- resources/views/admin/psection/add.blade.php | 14 +-- resources/views/admin/psection/edit.blade.php | 17 ++- resources/views/admin/psection/info.blade.php | 31 ------ resources/views/admin/psection/list.blade.php | 34 +----- 8 files changed, 157 insertions(+), 168 deletions(-) delete mode 100644 resources/views/admin/psection/info.blade.php diff --git a/app/Http/Controllers/Admin/PsectionController.php b/app/Http/Controllers/Admin/PsectionController.php index 441afaa..c687597 100644 --- a/app/Http/Controllers/Admin/PsectionController.php +++ b/app/Http/Controllers/Admin/PsectionController.php @@ -38,72 +38,91 @@ class PsectionController extends Controller ]); } - // 新規追加 + /** + * 車種区分マスタ:新規登録(画面/処理) + */ public function add(Request $request) { - if ($request->isMethod('post')) { - $validated = $request->validate([ - // 'psection_id' は自動採番なので不要 - 'psection_subject' => 'required|string|max:255', + if ($request->isMethod('get')) { + // GET:新規画面を表示 + return view('admin.psection.add', [ + 'isEdit' => false, // フォーム判定用 + 'record' => new Psection(), // ← ★★ これを渡すことで $record が使える ]); - - Psection::create($validated); - - return redirect()->route('psections')->with('success', '車室区分を追加しました'); } - // GET の場合は空のモデルを渡してフォームを表示 - return view('admin.psection.add', ['psection' => new Psection()]); + // POST:バリデーション + $validated = $request->validate([ + // 'psection_id' は自動採番 + 'psection_subject' => 'required|string|max:255', + ]); + + // 登録処理 + Psection::create($validated); + + // 完了メッセージ+一覧へ戻る + return redirect()->route('psections')->with('success', '登録しました。'); } - // 編集 + + /** + * 車種区分マスタ:編集(画面/処理) + */ public function edit(Request $request, $id) { - // 主キーで検索(見つからない場合は 404) - $psection = Psection::findOrFail($id); + // 主キーで検索(見つからない場合は404) + $record = Psection::findOrFail($id); - if ($request->isMethod('post')) { - // バリデーション - $validated = $request->validate([ - 'psection_subject' => 'required|string|max:255', + if ($request->isMethod('get')) { + // 編集画面表示 + return view('admin.psection.edit', [ + 'isEdit' => true, // ← ★ Blade 側のフォームで新規/編集を判定するため + 'record' => $record, // ← ★ _form.blade.php で使用する ]); - - // データ更新 - $psection->update($validated); - - // 成功メッセージ & リダイレクト - return redirect()->route('psections')->with('success', '車種区分を更新しました'); } - // 編集画面を表示 - return view('admin.psection.edit', compact('psection')); -} + // POST時:バリデーション + $validated = $request->validate([ + 'psection_subject' => 'required|string|max:255', + ]); + // データ更新 + $record->update($validated); - // 詳細(info) - public function info(Request $request, $id) - { - $psection = Psection::findOrFail($id); - return view('admin.psection.info', compact('psection')); + // 成功メッセージ & リダイレクト + return redirect()->route('psections')->with('success', '更新しました。'); } - // 削除 + /** + * 削除(単一/複数対応) + */ public function delete(Request $request) { - $arr_pk = $request->get('pk'); + $ids = []; - if (!is_array($arr_pk)) { - $arr_pk = [$arr_pk]; + // 単一削除(編集画面などからの削除ボタン) + if ($request->filled('id')) { + $ids[] = (int) $request->input('id'); } - if ($arr_pk && count($arr_pk) > 0) { - if (Psection::whereIn('psection_id', $arr_pk)->delete()) { - return redirect()->route('psections')->with('success', __("削除が完了しました。")); - } else { - return redirect()->route('psections')->with('error', __('削除に失敗しました。')); - } + // 一覧画面からの複数削除チェックボックス対応 + if (is_array($request->input('pk'))) { + $ids = array_merge($ids, $request->input('pk')); } - return redirect()->route('psections')->with('error', __('削除するデータを選択してください。')); + + // 重複削除・無効値除去 + $ids = array_values(array_unique(array_map('intval', $ids))); + + // 削除対象がない場合 + if (empty($ids)) { + return back()->with('error', '削除対象が選択されていません。'); + } + + // 削除実行 + Psection::whereIn('psection_id', $ids)->delete(); + + // 完了メッセージ+リダイレクト + return redirect()->route('psections')->with('success', '削除しました。'); } } diff --git a/resources/lang/ja/validation.php b/resources/lang/ja/validation.php index 18b4ef8..542e34e 100644 --- a/resources/lang/ja/validation.php +++ b/resources/lang/ja/validation.php @@ -249,7 +249,7 @@ return [ 'park_id' => '駐輪場ID', // 'park_id' => '駐輪場名', 'psection_id' => '車種区分ID', - 'psection_subject' => '車種区分', + 'psection_subject' => '車種区分名', 'price_ptypeid' => '駐輪分類ID', 'user_categoryid' => '利用者分類ID', 'pplace_id' => '駐輪車室ID', diff --git a/resources/views/admin/opes/_form.blade.php b/resources/views/admin/opes/_form.blade.php index 9ee9e30..840df74 100644 --- a/resources/views/admin/opes/_form.blade.php +++ b/resources/views/admin/opes/_form.blade.php @@ -284,23 +284,23 @@
- {{-- 登録ボタン --}} - @if($isEdit) - - @else - - @endif + {{-- 登録ボタン --}} + @if($isEdit) + + @else + + @endif - {{-- 削除ボタン(編集時のみ表示) --}} - @if($isEdit) - - @endif + {{-- 削除ボタン(編集時のみ表示) --}} + @if($isEdit) + + @endif
diff --git a/resources/views/admin/psection/_form.blade.php b/resources/views/admin/psection/_form.blade.php index c88b21c..76ff639 100644 --- a/resources/views/admin/psection/_form.blade.php +++ b/resources/views/admin/psection/_form.blade.php @@ -1,63 +1,77 @@ +{{-- アラート --}} @if(Session::has('success')) -@elseif(Session::has('error')) +@endif + +@if($errors->any())
-

{{__('誤差')}}:

- {!! Session::get('error') !!} -
-@elseif(isset($errorMsg)) -
- -

{{__('誤差')}}:

- {!! $errorMsg !!} +

{{ __('入力内容に不備があります:') }}

+
@endif
- {{-- 車室区分ID --}} + {{-- ▼ 車種区分ID(編集時のみ表示) --}} + @if($isEdit && isset($record))
- -
- +
+ +
+
+
+ @endif - {{-- 車室区分名 --}} + {{-- ▼ 車種区分名 --}}
- -
- +
+ +
+
+
- {{-- ▼ 下部ボタン --}} -
-
- {{-- 登録ボタン --}} - +
+
- {{-- 削除ボタン(編集画面のみ表示) --}} - @if(!empty($psection->psection_id)) - -
- @csrf - - -
+ {{-- 登録ボタン --}} + @if($isEdit) + + @else + @endif + + {{-- 削除ボタン(編集時のみ表示) --}} + @if($isEdit) + + @endif +
+
\ No newline at end of file diff --git a/resources/views/admin/psection/add.blade.php b/resources/views/admin/psection/add.blade.php index 01df0df..759848a 100644 --- a/resources/views/admin/psection/add.blade.php +++ b/resources/views/admin/psection/add.blade.php @@ -1,6 +1,6 @@ @extends('layouts.app') -@section('title', '[東京都|〇〇駐輪場] 車種区分マスタ') +@section('title', '新規') @section('content') @@ -8,13 +8,13 @@
-

新規登録

+

新規

@@ -30,11 +30,9 @@
-
- - - - @include('admin.psection._form',['isEdit'=>0,'isInfo'=>0]) + + @csrf + @include('admin.psection._form', ['isEdit' => false, 'record' => $record])
diff --git a/resources/views/admin/psection/edit.blade.php b/resources/views/admin/psection/edit.blade.php index 6545c1d..121b4c0 100644 --- a/resources/views/admin/psection/edit.blade.php +++ b/resources/views/admin/psection/edit.blade.php @@ -1,6 +1,6 @@ @extends('layouts.app') -@section('title', '車種区分マスタ 編集') +@section('title', '編集') @section('content')
@@ -23,9 +23,20 @@
-
+ @csrf - @include('admin.psection._form',['isEdit'=>1,'isInfo'=>0]) + @include('admin.psection._form', ['isEdit' => true]) +
+ + {{-- Delete Form --}} +
diff --git a/resources/views/admin/psection/info.blade.php b/resources/views/admin/psection/info.blade.php deleted file mode 100644 index fff7b58..0000000 --- a/resources/views/admin/psection/info.blade.php +++ /dev/null @@ -1,31 +0,0 @@ -@extends('layouts.app') -@section('title', '車種区分詳細') -@section('content') -
-
-
-

車種区分詳細

-
- -
-
-
-
-
-
-
- - -
-
- - -
- 一覧に戻る -
-
-@endsection diff --git a/resources/views/admin/psection/list.blade.php b/resources/views/admin/psection/list.blade.php index 8b4a24b..184ae81 100644 --- a/resources/views/admin/psection/list.blade.php +++ b/resources/views/admin/psection/list.blade.php @@ -27,8 +27,7 @@ {{-- ▼ アクションボタン --}}
新規 - +
{{-- ▼ ページネーション --}} @@ -55,7 +54,7 @@ @endif @if ($list->count() > 0) -
+ @csrf
@@ -99,32 +98,11 @@
- @else - {{-- ▼ データ無し表示 --}} -
表示するデータがありません。
- @endif -
+ @endif +
-{{-- ▼ ソート用スクリプト --}} - + + @endsection