From 8a9bd9d569d32bb7cbe7903b22e3134bf37cff6f Mon Sep 17 00:00:00 2001 From: Yuka Higashide Date: Tue, 7 Oct 2025 17:31:46 +0900 Subject: [PATCH] =?UTF-8?q?=E9=A7=90=E8=BC=AA=E5=A0=B4=E6=A4=9C=E7=B4=A2?= =?UTF-8?q?=E3=80=80=E4=B8=A6=E3=81=B3=E6=9B=BF=E3=81=88=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../RegularContractCreateController.php | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/app/Http/Controllers/RegularContractCreateController.php b/app/Http/Controllers/RegularContractCreateController.php index 64edca5..c269d6a 100644 --- a/app/Http/Controllers/RegularContractCreateController.php +++ b/app/Http/Controllers/RegularContractCreateController.php @@ -82,21 +82,16 @@ class RegularContractCreateController extends Controller // 並び替えパラメータ取得 $sort = request()->input('sort', 'park_id'); $order = request()->input('order', 'asc'); - \Log::info('sort param: ' . $sort); $sortable = [ 'park_ruby' => 'park.park_ruby', 'city_id' => 'city.city_id', 'station_name_ruby' => 'station.station_name_ruby', 'park_id' => 'park.park_id', ]; - if (isset($sortable[$sort])) { - $query->orderBy($sortable[$sort], $order); - } else { - $query->orderBy('park.park_id', 'asc'); - } + $query->orderBy('park.park_id', 'asc'); $total = $query->count(); - $parks_table = $query->skip(($page - 1) * $perPage)->take($perPage)->get(); + $parks_table = $query->get(); if ($sort === 'park_ruby' || $sort === 'station_name_ruby') { $collator = new \Collator('ja_JP'); @@ -107,7 +102,15 @@ class RegularContractCreateController extends Controller ? $collator->compare($a_val, $b_val) : $collator->compare($b_val, $a_val); })->values(); + } else { + // park_id, city_idなどはSQLのorderByで十分なので、ここでPHPソートは不要 + if (isset($sortable[$sort])) { + $parks_table = $parks_table->sortBy($sort, SORT_REGULAR, $order === 'desc')->values(); + } } + $page = request()->input('page', 1); + $perPage = 10; + $parks_table = $parks_table->slice(($page - 1) * $perPage, $perPage)->values(); // zoneテーブルデータを取得(psectionテーブルとJOINしてpsection_subjectも取得) $zones = DB::table('zone') @@ -140,7 +143,7 @@ class RegularContractCreateController extends Controller } return view('regular_contract.create', [ - 'active_menu' => $active_menu, // 画面ID + 'active_menu' => $active_menu, // この画面のID 'user_name' => $user ? $user->user_name : '', // ユーザー名(ヘッダー用) 'cities' => $cities, 'stations' => $stations, -- 2.47.3