$request->isMethod('post'), 'sort' => $request->input('sort', ''), 'sort_type' => $request->input('sort_type', ''), 'page' => $request->get('page', 1), ]; $query = City::query(); if ($request->filled('city_name')) { $query->where('city_name', 'like', '%' . $request->input('city_name') . '%'); } if (!empty($inputs['sort'])) { $query->orderBy($inputs['sort'], $inputs['sort_type'] ?? 'asc'); } $inputs['list'] = $query->paginate(20); if ($inputs['list']->total() > 0 && $inputs['page'] > $inputs['list']->lastPage()) { return redirect()->route('city'); } return view('admin.CityMaster.list', $inputs); } public function add(Request $request) { $inputs = [ 'city_name' => '', 'print_layout' => '', 'city_user' => '', 'city_remarks' => '', ]; if ($request->isMethod('POST')) { $rules = [ 'city_name' => 'required|string|max:255', ]; $validator = Validator::make($request->all(), $rules); $inputs = array_merge($inputs, $request->all()); if (!$validator->fails()) { $maxId = DB::table('city')->max('city_id'); $newCityId = $maxId ? $maxId + 1 : 1; $city = new City(); $city->city_id = $newCityId; $city->fill($request->only([ 'city_name', 'print_layout', 'city_user', 'city_remarks', ])); if ($city->save()) { $request->session()->flash('success', __('登録に成功しました')); return redirect()->route('city'); } else { $request->session()->flash('error', __('登録に失敗しました')); } } else { $inputs['errorMsg'] = $validator->errors()->all(); } } return view('admin.CityMaster.add', $inputs); } public function edit(Request $request, $pk, $view = '') { $city = City::find($pk); if (!$city) { abort(404); } if ($request->isMethod('POST')) { $rules = [ 'city_name' => 'required|string|max:255', ]; $validator = Validator::make($request->all(), $rules); if (!$validator->fails()) { $city->fill($request->only([ 'city_name', 'print_layout', 'city_user', 'city_remarks', ])); if ($city->save()) { $request->session()->flash('success', __('更新に成功しました')); return redirect()->route('city'); } else { $request->session()->flash('error', __('更新に失敗しました')); } } else { return view('admin.CityMaster.edit', [ 'city' => $city, 'errorMsg' => $validator->errors()->all(), ]); } } return view($view ?: 'admin.CityMaster.edit', [ 'city' => $city, ]); } public function info(Request $request, $pk) { return $this->edit($request, $pk, 'CityMaster.info'); } public function delete(Request $request) { $arr_pk = $request->get('pk'); if ($arr_pk && City::destroy($arr_pk)) { return redirect()->route('city')->with('success', __("削除が完了しました。")); } else { return redirect()->route('city')->with('error', __('削除に失敗しました。')); } } }