140 lines
4.2 KiB
PHP
140 lines
4.2 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Admin;
|
|
|
|
use Illuminate\Http\Request;
|
|
use App\Http\Controllers\Controller;
|
|
use Illuminate\Support\Facades\Validator;
|
|
use Illuminate\Support\Facades\DB;
|
|
use App\Models\City;
|
|
|
|
class CityController extends Controller
|
|
{
|
|
public function list(Request $request)
|
|
{
|
|
$inputs = [
|
|
'isMethodPost' => $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', __('削除に失敗しました。'));
|
|
}
|
|
}
|
|
}
|