「市区マスタ」画面修正
All checks were successful
Deploy main / deploy (push) Successful in 23s

This commit is contained in:
你的名字 2025-09-03 11:03:00 +09:00
parent fcbb572abd
commit 542a910aa5
5 changed files with 80 additions and 79 deletions

View File

@ -49,9 +49,21 @@ class CityController extends Controller
if ($request->isMethod('POST')) {
$rules = [
'city_name' => 'required|string|max:255',
'city_name' => ['required', 'string', 'max:10', 'regex:/^[^ -~。-゚]+$/u'], // 全角のみ
'print_layout' => ['required', 'string', 'max:10', 'regex:/^[^ -~。-゚]+$/u'], // 全角のみ
'city_user' => ['required', 'string', 'max:10', 'regex:/^[^ -~。-゚]+$/u'], // 全角のみ
'city_remarks' => ['nullable', 'string', 'max:20'], // 全角半角可・任意
];
$validator = Validator::make($request->all(), $rules);
$messages = [
'city_name.required' => '市区名は必須です。',
'city_name.regex' => '市区名は全角で入力してください。',
'print_layout.required' => '印字レイアウトファイルは必須です。',
'print_layout.regex' => '印字レイアウトファイルは全角で入力してください。',
'city_user.required' => '顧客M入力不要フィールドIDは必須です。',
'city_user.regex' => '顧客M入力不要フィールドIDは全角で入力してください。',
'city_remarks.max' => '備考は20文字以内で入力してください。',
];
$validator = Validator::make($request->all(), $rules, $messages);
$inputs = array_merge($inputs, $request->all());
@ -91,9 +103,21 @@ class CityController extends Controller
if ($request->isMethod('POST')) {
$rules = [
'city_name' => 'required|string|max:255',
'city_name' => ['required', 'string', 'max:10', 'regex:/^[^ -~。-゚]+$/u'],
'print_layout' => ['required', 'string', 'max:10', 'regex:/^[^ -~。-゚]+$/u'],
'city_user' => ['required', 'string', 'max:10', 'regex:/^[^ -~。-゚]+$/u'],
'city_remarks' => ['nullable', 'string', 'max:20'],
];
$validator = Validator::make($request->all(), $rules);
$messages = [
'city_name.required' => '市区名は必須です。',
'city_name.regex' => '市区名は全角で入力してください。',
'print_layout.required' => '印字レイアウトファイルは必須です。',
'print_layout.regex' => '印字レイアウトファイルは全角で入力してください。',
'city_user.required' => '顧客M入力不要フィールドIDは必須です。',
'city_user.regex' => '顧客M入力不要フィールドIDは全角で入力してください。',
'city_remarks.max' => '備考は20文字以内で入力してください。',
];
$validator = Validator::make($request->all(), $rules, $messages);
if (!$validator->fails()) {
$city->fill($request->only([
@ -130,7 +154,10 @@ class CityController extends Controller
public function delete(Request $request)
{
$arr_pk = $request->get('pk');
if ($arr_pk && City::destroy($arr_pk)) {
if (!$arr_pk) {
return redirect()->route('city')->with('error', __('削除する市区を選択してください。'));
}
if (City::destroy($arr_pk)) {
return redirect()->route('city')->with('success', __("削除が完了しました。"));
} else {
return redirect()->route('city')->with('error', __('削除に失敗しました。'));

View File

@ -4,21 +4,21 @@
</div>
<div class="form-group">
<label for="city_name">市区名</label>
<input type="text" name="city_name" id="city_name" class="form-control" value="{{ old('city_name', $city->city_name ?? '') }}" required>
<label for="city_name">市区名 <span class="text-danger">*</span></label>
<input type="text" name="city_name" id="city_name" class="form-control" value="{{ old('city_name', $city->city_name ?? '') }}" required maxlength="10" pattern="[^ -~。-゚]+" title="全角で入力してください">
</div>
<div class="form-group">
<label for="print_layout">印字レイアウトファイル</label>
<input type="text" name="print_layout" id="print_layout" class="form-control" value="{{ old('print_layout', $city->print_layout ?? '') }}">
<label for="print_layout">印字レイアウトファイル <span class="text-danger">*</span></label>
<input type="text" name="print_layout" id="print_layout" class="form-control" value="{{ old('print_layout', $city->print_layout ?? '') }}" required maxlength="10" pattern="[^ -~。-゚]+" title="全角で入力してください">
</div>
<div class="form-group">
<label for="city_user">顧客M入力不要フィールドID</label>
<input type="text" name="city_user" id="city_user" class="form-control" value="{{ old('city_user', $city->city_user ?? '') }}">
<label for="city_user">顧客M入力不要フィールドID <span class="text-danger">*</span></label>
<input type="text" name="city_user" id="city_user" class="form-control" value="{{ old('city_user', $city->city_user ?? '') }}" required maxlength="10" pattern="[^ -~。-゚]+" title="全角で入力してください">
</div>
<div class="form-group">
<label for="city_remarks">備考</label>
<textarea name="city_remarks" id="city_remarks" class="form-control" rows="3">{{ old('city_remarks', $city->city_remarks ?? '') }}</textarea>
<textarea name="city_remarks" id="city_remarks" class="form-control" rows="3" maxlength="20">{{ old('city_remarks', $city->city_remarks ?? '') }}</textarea>
</div>

View File

@ -1,43 +1,27 @@
@extends('layouts.app')
@section('title', '[東京都|〇〇駐輪場] マスタ管理')
@section('content')
<!-- Content Header (Page header) -->
<div class="content-header">
<div class="container-fluid">
<div class="row mb-2">
<div class="col-lg-6">
<h1 class="m-0 text-dark">[東京都|〇〇駐輪場] マスタ管理</h1>
</div><!-- /.col -->
<div class="col-lg-6">
<ol class="breadcrumb float-sm-right text-sm">
<li class="breadcrumb-item"><a href="./index2.html">XX様info(ホーム)</a></li>
<li class="breadcrumb-item"><a href="./index3.html">[東京都|〇〇駐輪場]</a></li>
<li class="breadcrumb-item">マスタ管理</li>
<li class="breadcrumb-item active">市区マスタ</li>
</ol>
</div><!-- /.col -->
</div><!-- /.row -->
</div><!-- /.container-fluid -->
<div class="container-fluid">
<div class="d-flex justify-content-between align-items-center mb-3">
<h3 class="mb-0">新規登録</h3>
<ol class="breadcrumb float-sm-right text-sm mb-0" style="background: #f8f9fa;">
<li class="breadcrumb-item"><a href="{{ url('/home') }}">ホーム</a></li>
<li class="breadcrumb-item"><a href="{{ route('city') }}">市区マスタ</a></li>
<li class="breadcrumb-item active">新規</li>
</ol>
</div>
<!-- /.content-header -->
<div class="container-fluid">
<h1 class="h4 mb-4 text-gray-800">市区マスタ 新規登録</h1>
<div class="card shadow mb-4">
<div class="card-body">
<form method="POST" action="{{ route('city_add') }}">
@csrf
@include('admin.CityMaster._form', ['isEdit' => 0, 'isInfo' => 0])
<div class="mt-3">
<button type="submit" class="btn btn-primary"
onclick="return confirm('登録してよろしいですか?');">登録</button>
<a href="{{ route('city') }}" class="btn btn-secondary">戻る</a>
</div>
</form>
<div class="card shadow mb-4">
<div class="card-body">
<form method="POST" action="{{ route('city_add') }}">
@csrf
@include('admin.CityMaster._form', ['isEdit' => 0, 'isInfo' => 0])
<div class="mt-3">
<button type="submit" class="btn btn-primary" onclick="return confirm('登録してよろしいですか?');">登録</button>
<a href="{{ route('city') }}" class="btn btn-secondary">戻る</a>
</div>
</form>
</div>
</div>
</div>
</div>
@endsection
@endsection

View File

@ -3,31 +3,18 @@
@section('title', '市区マスタ編集')
@section('content')
<!-- Content Header (Page header) -->
<div class="content-header">
<div class="container-fluid">
<div class="row mb-2">
<div class="col-lg-6">
<h1 class="m-0 text-dark">[東京都|〇〇駐輪場] 市区マスタ</h1>
</div>
<div class="col-lg-6">
<ol class="breadcrumb float-sm-right text-sm">
<li class="breadcrumb-item"><a href="{{ url('/home') }}">XX様info(ホーム)</a></li>
<li class="breadcrumb-item"><a href="#">[東京都|〇〇駐輪場]</a></li>
<li class="breadcrumb-item">マスタ管理</li>
<li class="breadcrumb-item active">市区マスタ</li>
</ol>
</div>
</div>
</div>
</div>
<!-- /.content-header -->
<!-- Main content -->
<section class="content">
<div class="container-fluid">
<h1 class="h5 mb-4">市区マスタ 編集</h1>
<div class="d-flex justify-content-between align-items-center mb-3">
<h3 class="mb-0">編集</h3>
<ol class="breadcrumb float-sm-right text-sm mb-0" style="background: #f8f9fa;">
<li class="breadcrumb-item"><a href="{{ url('/home') }}">ホーム</a></li>
<li class="breadcrumb-item"><a href="{{ route('city') }}">市区マスタ</a></li>
<li class="breadcrumb-item active">編集</li>
</ol>
</div>
@includeIf('common.flash')
<div class="card shadow mb-4">

View File

@ -3,6 +3,14 @@
@section('title', '市区マスタ')
@section('content')
{{-- フラッシュメッセージ --}}
@if(session('success'))
<div class="alert alert-success">{{ session('success') }}</div>
@endif
@if(session('error'))
<div class="alert alert-danger">{{ session('error') }}</div>
@endif
<!-- Content Header (Page header) -->
<div class="content-header">
<div class="container-fluid">
@ -40,10 +48,8 @@
<tr>
<th><input type="checkbox"
onclick="$('input[name*=\'pk\']').prop('checked', this.checked);"></th>
<th></th>
<th>
<a
href="{{ route('city', array_merge(request()->all(), ['sort' => 'city_id', 'sort_type' => $sort === 'city_id' && $sort_type === 'asc' ? 'desc' : 'asc'])) }}">
<a href="{{ route('city', array_merge(request()->all(), ['sort' => 'city_id', 'sort_type' => $sort === 'city_id' && $sort_type === 'asc' ? 'desc' : 'asc'])) }}">
市区ID
@if($sort === 'city_id')
<i class="fa fa-sort-{{ $sort_type }}"></i>
@ -51,8 +57,7 @@
</a>
</th>
<th>
<a
href="{{ route('city', array_merge(request()->all(), ['sort' => 'city_name', 'sort_type' => $sort === 'city_name' && $sort_type === 'asc' ? 'desc' : 'asc'])) }}">
<a href="{{ route('city', array_merge(request()->all(), ['sort' => 'city_name', 'sort_type' => $sort === 'city_name' && $sort_type === 'asc' ? 'desc' : 'asc'])) }}">
市区名
@if($sort === 'city_name')
<i class="fa fa-sort-{{ $sort_type }}"></i>
@ -69,15 +74,13 @@
<tr>
<td style="background: #faebd7;">
<input type="checkbox" name="pk[]" value="{{ $city->city_id }}">
<a href="{{ route('city_edit', ['id' => $city->city_id]) }}"
class="btn btn-sm btn-outline-primary ml-2">編集</a>
<a href="{{ route('city_edit', ['id' => $city->city_id]) }}" class="btn btn-sm btn-outline-primary ml-2">編集</a>
</td>
<td>{{ $city->city_id }}</td>
<td>{{ $city->city_name }}</td>
<td>{{ $city->print_layout }}</td>
<td>{{ $city->city_user }}</td>
<td>{{ $city->city_remarks }}</td>
<td> </td>
</tr>
@endforeach
</tbody>