diff --git a/app/Http/Controllers/Admin/PriceController.php b/app/Http/Controllers/Admin/PriceController.php index f7a7d25..27a1404 100644 --- a/app/Http/Controllers/Admin/PriceController.php +++ b/app/Http/Controllers/Admin/PriceController.php @@ -20,19 +20,23 @@ class PriceController extends Controller public function list(Request $request) { $inputs = [ - 'isExport' => 0, - 'sort' => $request->input('sort', ''), - 'sort_type' => $request->input('sort_type', ''), - 'page' => $request->get('page', 1), - + 'isExport' => 0, + 'sort' => $request->input('sort', ''), // ソート対象カラム + 'sort_type' => $request->input('sort_type', ''), // 昇順/降順 + 'page' => $request->get('page', 1), ]; + + // Price::search 内で orderBy を反映させる $inputs['list'] = Price::search($inputs); + if ($inputs['list']->total() > 0 && $inputs['page'] > $inputs['list']->lastPage()) { return redirect()->route('prices'); } + return view('admin.prices.list', $inputs); } + public function add(Request $request) { $inputs = [ diff --git a/app/Models/Price.php b/app/Models/Price.php index 868a12d..cfd2e5d 100644 --- a/app/Models/Price.php +++ b/app/Models/Price.php @@ -41,33 +41,36 @@ class Price extends Model public static function search($inputs) { - $list = self::query(); - // 只有在sort是有效字段时才排序 + $query = self::query(); + + // 検索条件 $allowedSortColumns = [ - 'price_parkplaceid', - 'prine_name', - 'price_month', - 'park_id', - 'psection_id', - 'price_ptypeid', - 'user_categoryid', - 'pplace_id', - 'price' + 'price_parkplaceid', // 駐車場所ID + 'park_id', // 駐輪場ID + 'prine_name', // 商品名 + 'price_month', // 期間 + 'user_categoryid', // 利用者分類ID + 'price', // 駐輪料金(税込) + 'psection_id', // 車種区分ID + 'price_ptypeid', // 駐輪分類ID + 'pplace_id', // 駐車車室ID ]; - $sort_column = $inputs['sort'] ?? ''; - $sort_type = strtolower($inputs['sort_type'] ?? 'asc'); - if (in_array($sort_column, $allowedSortColumns)) { - if (!in_array($sort_type, ['asc', 'desc'])) { - $sort_type = 'asc'; + + // ソート指定 + $sortColumn = $inputs['sort'] ?? ''; + $sortType = strtolower($inputs['sort_type'] ?? 'asc'); + + if (in_array($sortColumn, $allowedSortColumns, true)) { + if (!in_array($sortType, ['asc', 'desc'], true)) { + $sortType = 'asc'; } - $list->orderBy($sort_column, $sort_type); + $query->orderBy($sortColumn, $sortType); } - if ($inputs['isExport']) { - $list = $list->get(); - } else { - $list = $list->paginate(Utils::item_per_page); - } - return $list; + + // データ取得 + return $inputs['isExport'] + ? $query->get() + : $query->paginate(\App\Utils::item_per_page ?? 20); } diff --git a/resources/views/admin/prices/_form.blade.php b/resources/views/admin/prices/_form.blade.php index 85e4e39..eeb60ed 100644 --- a/resources/views/admin/prices/_form.blade.php +++ b/resources/views/admin/prices/_form.blade.php @@ -6,138 +6,155 @@ @elseif(Session::has('error'))