-
+ @foreach ($errors->all() as $error)
+
- {{ $error }} + @endforeach +
From e1254515ffe44b37d03aa1cbeb1475927cc4f770 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=A0=E7=9A=84=E5=90=8D=E5=AD=97?= <你的邮箱> Date: Fri, 29 Aug 2025 10:52:05 +0900 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=9B=9E=E3=82=B3=E3=83=9F=E3=83=83?= =?UTF-8?q?=E3=83=88&=E4=B8=80=E9=83=A8=E4=B8=8D=E8=A6=81=E3=81=AA?= =?UTF-8?q?=E3=82=BD=E3=83=BC=E3=82=B9=E5=89=8A=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Admin/InformationController.php | 44 ++ app/Http/Controllers/Admin/OpesController.php | 230 ++++++ .../Controllers/Admin/PersonalController.php | 66 ++ .../Controllers/Admin/SealsController.php | 28 + .../Controllers/Admin/TagissueController.php | 41 ++ .../Auth/ForgotPasswordController.php | 61 ++ .../Auth/ResetPasswordController.php | 51 ++ .../views/admin/information/list.blade.php | 228 ++++++ resources/views/admin/opes/_form.blade.php | 588 ++++------------ resources/views/admin/opes/add.blade.php | 92 ++- resources/views/admin/opes/edit.blade.php | 9 +- resources/views/admin/opes/info.blade.php | 9 +- resources/views/admin/opes/list.blade.php | 442 ++++-------- resources/views/admin/parks/info.blade.php | 53 -- resources/views/admin/personal/edit.blade.php | 196 ++++++ resources/views/admin/personal/list.blade.php | 108 +++ .../views/admin/tag_issue/list.blade.php | 130 ++++ resources/views/admin/users/_form.blade.php | 652 ------------------ resources/views/admin/users/edit.blade.php | 51 -- resources/views/admin/users/info.blade.php | 52 -- .../views/admin/usertypes/delete.blade.php | 55 ++ .../views/auth/forgot-password.blade.php | 57 ++ resources/views/auth/login.blade.php | 5 +- resources/views/auth/reset-password.blade.php | 46 ++ resources/views/layouts/app.blade.php | 561 +++++++-------- routes/web.php | 48 +- 26 files changed, 1915 insertions(+), 1988 deletions(-) create mode 100644 app/Http/Controllers/Admin/InformationController.php create mode 100644 app/Http/Controllers/Admin/OpesController.php create mode 100644 app/Http/Controllers/Admin/PersonalController.php create mode 100644 app/Http/Controllers/Admin/SealsController.php create mode 100644 app/Http/Controllers/Admin/TagissueController.php create mode 100644 app/Http/Controllers/Auth/ForgotPasswordController.php create mode 100644 app/Http/Controllers/Auth/ResetPasswordController.php create mode 100644 resources/views/admin/information/list.blade.php delete mode 100644 resources/views/admin/parks/info.blade.php create mode 100644 resources/views/admin/personal/edit.blade.php create mode 100644 resources/views/admin/personal/list.blade.php create mode 100644 resources/views/admin/tag_issue/list.blade.php delete mode 100644 resources/views/admin/users/_form.blade.php delete mode 100644 resources/views/admin/users/edit.blade.php delete mode 100644 resources/views/admin/users/info.blade.php create mode 100644 resources/views/admin/usertypes/delete.blade.php create mode 100644 resources/views/auth/forgot-password.blade.php create mode 100644 resources/views/auth/reset-password.blade.php diff --git a/app/Http/Controllers/Admin/InformationController.php b/app/Http/Controllers/Admin/InformationController.php new file mode 100644 index 0000000..432689d --- /dev/null +++ b/app/Http/Controllers/Admin/InformationController.php @@ -0,0 +1,44 @@ +input('period', 'month'); // デフォルト: 最新1ヵ月 + + $query = DB::table('bat_job_log') + ->leftJoin('device', 'bat_job_log.device_id', '=', 'device.device_id') + ->select( + 'bat_job_log.job_log_id', + 'bat_job_log.process_name', + 'bat_job_log.job_name', + 'bat_job_log.device_id', + 'device.park_id', + 'bat_job_log.status_comment', + 'bat_job_log.status', + 'bat_job_log.status_comment as comment', + 'bat_job_log.created_at', + 'bat_job_log.updated_at' + ); + + // 期間フィルター + if ($period === 'month') { + $query->where('bat_job_log.updated_at', '>=', now()->subMonth()); + } + // 'all'の場合はフィルターなし + + $jobs = $query->orderByDesc('bat_job_log.job_log_id')->limit(50)->get(); + + return view('admin.information.list', [ + 'jobs' => $jobs, + 'period' => $period, + ]); + } +} \ No newline at end of file diff --git a/app/Http/Controllers/Admin/OpesController.php b/app/Http/Controllers/Admin/OpesController.php new file mode 100644 index 0000000..f9e182b --- /dev/null +++ b/app/Http/Controllers/Admin/OpesController.php @@ -0,0 +1,230 @@ +filled('user_id')) { + $query->where('user_id', $request->input('user_id')); + } + + $users = $query->paginate(20); + + return view('admin.personal.list', [ + 'users' => $users, + 'request' => $request, + ]); + } + + /** + * 本人確認手動処理 編集画面 + */ + public function edit(Request $request, $id) + { + // 利用者情報取得 + $user = User::where('user_id', $id)->firstOrFail(); + + // 利用者分類マスタ取得(ラジオボタン用) + $usertypes = Usertype::orderBy('sort_order')->get(); + + // POST時の処理 + if ($request->isMethod('post')) { + // 利用者分類IDの更新 + $user->user_categoryid = $request->input('user_categoryid', $user->user_categoryid); + + // 本人確認チェックOK/NG + if ($request->input('check') === 'ok') { + $user->user_idcard_chk_flag = 1; + } elseif ($request->input('check') === 'ng') { + $user->user_idcard_chk_flag = 0; + // 備考欄も更新(NG理由) + $user->user_remarks = $request->input('user_remarks', $user->user_remarks); + } + + $user->save(); + + return redirect()->route('personal')->with('success', '更新しました'); + } + + return view('admin.personal.edit', [ + 'user' => $user, + 'usertypes' => $usertypes, + ]); + } +} + +class OpesController extends Controller +{ + /** + * オペレータ一覧画面 + */ + public function list(Request $request) + { + $sort = $request->input('sort', 'ope_id'); // デフォルト値を設定 + $sort_type = $request->input('sort_type', 'asc'); // デフォルト値を設定 + + $query = Ope::query(); + + // 並び替え + $query->orderBy($sort, $sort_type); + + $list = $query->paginate(20); + + return view('admin.opes.list', [ + 'list' => $list, + 'sort' => $sort, + 'sort_type' => $sort_type, + 'request' => $request, + ]); + } + + /** + * オペレータ編集画面 + */ + public function edit(Request $request, $id) + { + $ope = \App\Models\Ope::findOrFail($id); + + if ($request->isMethod('post')) { + // バリデーション&更新処理 + // ... + } + + // 各項目を配列で渡す + return view('admin.opes.edit', [ + 'ope_id' => $ope->ope_id, + 'ope_name' => $ope->ope_name, + 'login_id' => $ope->login_id, + 'ope_pass' => '', // パスワードは空で + 'ope_belong' => $ope->ope_belong, + 'ope_type' => $ope->ope_type, + 'ope_mail' => $ope->ope_mail, + 'ope_phone' => $ope->ope_phone, + 'ope_sendalart_que1' => $ope->ope_sendalart_que1, + 'ope_sendalart_que2' => $ope->ope_sendalart_que2, + 'ope_sendalart_que3' => $ope->ope_sendalart_que3, + 'ope_sendalart_que4' => $ope->ope_sendalart_que4, + 'ope_sendalart_que5' => $ope->ope_sendalart_que5, + 'ope_sendalart_que6' => $ope->ope_sendalart_que6, + 'ope_sendalart_que7' => $ope->ope_sendalart_que7, + 'ope_sendalart_que8' => $ope->ope_sendalart_que8, + 'ope_sendalart_que9' => $ope->ope_sendalart_que9, + 'ope_sendalart_que10' => $ope->ope_sendalart_que10, + 'ope_sendalart_que11' => $ope->ope_sendalart_que11, + 'ope_sendalart_que12' => $ope->ope_sendalart_que12, + 'ope_sendalart_que13' => $ope->ope_sendalart_que13, + 'ope_auth1' => $ope->ope_auth1, + 'ope_auth2' => $ope->ope_auth2, + 'ope_auth3' => $ope->ope_auth3, + 'ope_auth4' => $ope->ope_auth4, + 'ope_quit_flag' => $ope->ope_quit_flag, + 'ope_quitday' => $ope->ope_quitday, + ]); + } + + /** + * オペレータ一覧のエクスポート + */ + public function export(Request $request) + { + $filename = 'ope_export_' . date('Ymd_His') . '.csv'; + $columns = [ + 'ope_id', 'ope_belong', 'login_id', 'ope_name', 'ope_pass', 'ope_type', 'ope_mail', 'ope_phone', + 'ope_sendalart_que1', 'ope_sendalart_que2', 'ope_sendalart_que3', 'ope_sendalart_que4', 'ope_sendalart_que5', + 'ope_sendalart_que6', 'ope_sendalart_que7', 'ope_sendalart_que8', 'ope_sendalart_que9', 'ope_sendalart_que10', + 'ope_sendalart_que11', 'ope_sendalart_que12', 'ope_sendalart_que13', + 'ope_auth1', 'ope_auth2', 'ope_auth3', 'ope_auth4', + 'ope_quit_flag', 'ope_quitday', 'created_at', 'updated_at' + ]; + + $ids = $request->input('pk', []); + if (!empty($ids)) { + $list = \App\Models\Ope::whereIn('ope_id', $ids)->select($columns)->get(); + } else { + $list = \App\Models\Ope::select($columns)->get(); + } + + $callback = function() use ($list, $columns) { + $file = fopen('php://output', 'w'); + // ヘッダー + fputcsv($file, $columns); + + foreach ($list as $row) { + $data = []; + foreach ($columns as $col) { + $data[] = $row->$col; + } + fputcsv($file, $data); + } + fclose($file); + }; + + return response()->stream($callback, 200, [ + "Content-Type" => "text/csv", + "Content-Disposition" => "attachment; filename={$filename}", + ]); + } + + /** + * オペレータの削除 + */ + public function delete(Request $request) + { + // チェックされたIDの配列を受け取る想定 + $ids = $request->input('pk', []); + if (!empty($ids)) { + \App\Models\Ope::whereIn('ope_id', $ids)->delete(); + return redirect()->route('opes')->with('success', '削除しました'); + } + return redirect()->route('opes')->with('error', '削除対象が選択されていません'); + } + + /** + * オペレータの追加 + */ + public function add(Request $request) + { + if ($request->isMethod('post')) { + $validated = $request->validate([ + 'ope_name' => 'required|string|max:255', + 'login_id' => 'required|string|max:255|unique:ope,login_id', + 'password' => 'required|string|min:6|confirmed', + 'ope_type' => 'required', + 'ope_mail' => 'required|email', + ]); + $ope = new \App\Models\Ope(); + $ope->ope_name = $request->ope_name; + $ope->login_id = $request->login_id; + $ope->ope_pass = bcrypt($request->password); + $ope->ope_type = $request->ope_type; + $ope->ope_mail = $request->ope_mail; + $ope->ope_phone = $request->ope_phone; + for ($i = 1; $i <= 13; $i++) { + $field = "ope_sendalart_que{$i}"; + $ope->$field = $request->$field ?? 0; + } + for ($i = 1; $i <= 4; $i++) { + $field = "ope_auth{$i}"; + $ope->$field = $request->$field ?? ''; + } + $ope->ope_quit_flag = $request->ope_quit_flag ?? 0; + $ope->ope_quitday = $request->ope_quitday ?? null; + $ope->save(); + return redirect()->route('opes')->with('success', '登録しました'); + } + return view('admin.opes.add'); + } +} \ No newline at end of file diff --git a/app/Http/Controllers/Admin/PersonalController.php b/app/Http/Controllers/Admin/PersonalController.php new file mode 100644 index 0000000..72641d5 --- /dev/null +++ b/app/Http/Controllers/Admin/PersonalController.php @@ -0,0 +1,66 @@ +filled('user_id')) { + $query->where('user_id', $request->input('user_id')); + } + + $users = $query->paginate(20); + + return view('admin.personal.list', [ + 'users' => $users, + 'request' => $request, + ]); + } + + /** + * 本人確認手動処理 編集画面 + */ + public function edit(Request $request, $id) + { + // 利用者情報取得 + $user = User::where('user_id', $id)->firstOrFail(); + + // 利用者分類マスタ取得(ラジオボタン用) + $usertypes = Usertype::orderBy('sort_order')->get(); + + // POST時の処理 + if ($request->isMethod('post')) { + // 利用者分類IDの更新 + $user->user_categoryid = $request->input('user_categoryid', $user->user_categoryid); + + // 本人確認チェックOK/NG + if ($request->input('check') === 'ok') { + $user->user_idcard_chk_flag = 1; + } elseif ($request->input('check') === 'ng') { + $user->user_idcard_chk_flag = 0; + // 備考欄も更新(NG理由) + $user->user_remarks = $request->input('user_remarks', $user->user_remarks); + } + + $user->save(); + + return redirect()->route('personal')->with('success', '更新しました'); + } + + return view('admin.personal.edit', [ + 'user' => $user, + 'usertypes' => $usertypes, + ]); + } +} \ No newline at end of file diff --git a/app/Http/Controllers/Admin/SealsController.php b/app/Http/Controllers/Admin/SealsController.php new file mode 100644 index 0000000..43a770c --- /dev/null +++ b/app/Http/Controllers/Admin/SealsController.php @@ -0,0 +1,28 @@ +input('sort', 'seal_issueid'); + $sort_type = $request->input('sort_type', 'desc'); + + // sealテーブルを参照し、ソート + $list = DB::table('seal') + ->orderBy($sort, $sort_type) + ->paginate(20); + + return view('admin.seals.list', [ + 'list' => $list, + 'sort' => $sort, + 'sort_type' => $sort_type, + ]); + } +} \ No newline at end of file diff --git a/app/Http/Controllers/Admin/TagissueController.php b/app/Http/Controllers/Admin/TagissueController.php new file mode 100644 index 0000000..6f1cbca --- /dev/null +++ b/app/Http/Controllers/Admin/TagissueController.php @@ -0,0 +1,41 @@ +select( + 'user_seq', + 'user_tag_serial', + 'user_tag_serial_64', + 'user_tag_issue', + 'user_name', + 'user_mobile', + 'user_homephone', + 'user_regident_zip', + 'user_regident_pre', + 'user_regident_city', + 'user_regident_add' + ) + ->orderByDesc('user_seq'); + + // 必要に応じてフィルタ追加 + // if ($request->filled('user_tag_issue')) { + // $query->where('user_tag_issue', $request->input('user_tag_issue')); + // } + + $users = $query->paginate(20); + + return view('admin.tag_issue.list', [ + 'users' => $users, + ]); + } +} \ No newline at end of file diff --git a/app/Http/Controllers/Auth/ForgotPasswordController.php b/app/Http/Controllers/Auth/ForgotPasswordController.php new file mode 100644 index 0000000..c764940 --- /dev/null +++ b/app/Http/Controllers/Auth/ForgotPasswordController.php @@ -0,0 +1,61 @@ +validate([ + 'email' => 'required|email', + 'email_confirmation' => 'required|email|same:email', + ], [ + 'email.required' => 'メールアドレスを入力してください。', + 'email.email' => '正しいメールアドレス形式で入力してください。', + 'email_confirmation.required' => '確認用メールアドレスを入力してください。', + 'email_confirmation.email' => '正しいメールアドレス形式で入力してください。', + 'email_confirmation.same' => 'メールアドレスが一致しません。', + ]); + + // ope_mailでユーザーを検索 + $user = \App\Models\Ope::where('ope_mail', $request->input('email'))->first(); + + if (!$user) { + return back()->withErrors(['email' => '該当するユーザーが見つかりません。']); + } + + // トークン生成 + $token = Str::random(60); + + // トークン保存(既存レコードがあれば更新) + DB::table('password_reset_tokens')->updateOrInsert( + ['ope_mail' => $user->ope_mail], + [ + 'token' => $token, + 'created_at' => now(), + ] + ); + + // メール送信 + $resetUrl = url('/reset-password?token=' . $token . '&email=' . urlencode($user->ope_mail)); + Mail::raw("下記URLからパスワード再設定を行ってください。\n\n{$resetUrl}", function ($message) use ($user) { + $message->to($user->ope_mail) + ->subject('パスワード再設定のご案内'); + }); + + return back()->with('status', 'パスワード再設定メールを送信しました。'); + } +} \ No newline at end of file diff --git a/app/Http/Controllers/Auth/ResetPasswordController.php b/app/Http/Controllers/Auth/ResetPasswordController.php new file mode 100644 index 0000000..6e1a896 --- /dev/null +++ b/app/Http/Controllers/Auth/ResetPasswordController.php @@ -0,0 +1,51 @@ +query('token'); + $email = $request->query('email'); + return view('auth.reset-password', compact('token', 'email')); + } + + public function reset(Request $request) + { + $request->validate([ + 'email' => 'required|email', + 'token' => 'required', + 'password' => 'required|confirmed|min:8', + ]); + + // トークンチェック + $record = DB::table('password_reset_tokens') + ->where('ope_mail', $request->email) + ->where('token', $request->token) + ->first(); + + if (!$record) { + return back()->withErrors(['email' => '無効なトークンまたはメールアドレスです。']); + } + + // パスワード更新 + $user = Ope::where('ope_mail', $request->email)->first(); + if (!$user) { + return back()->withErrors(['email' => 'ユーザーが見つかりません。']); + } + $user->password = Hash::make($request->password); + $user->save(); + + // トークン削除 + DB::table('password_reset_tokens')->where('ope_mail', $request->email)->delete(); + + return redirect()->route('login')->with('status', 'パスワードを再設定しました。'); + } +} \ No newline at end of file diff --git a/resources/views/admin/information/list.blade.php b/resources/views/admin/information/list.blade.php new file mode 100644 index 0000000..8264b6e --- /dev/null +++ b/resources/views/admin/information/list.blade.php @@ -0,0 +1,228 @@ +@extends('layouts.app') +@section('title', '常時表示インフォメーション') + +@section('content') +
| + | キューID | +キュー種別 | +利用者 | +定期契約ID | +駐輪場 | +キューコメント | +キューステータス | +コメント | +登録日時 | +更新日時 | +更新オペレータ | +リンク | +
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| + | {{ $job->job_log_id }} | +{{ $job->process_name }} | +{{ $job->job_name }} | +{{ $job->device_id }} | +{{ $job->park_id }} | +{{ $job->status_comment }} | +{{ $job->status }} | +{{ $job->comment }} | +{{ $job->created_at }} | +{{ $job->updated_at }} | +- | +詳細 | +
| {{__('validation.attributes.ope_id')}} - | - -{{__('validation.attributes.ope_name')}} - | - -{{__('validation.attributes.password')}} | - -{{__('validation.attributes.ope_type')}} - | - -{{__('validation.attributes.ope_mail')}} - | - -{{__('validation.attributes.ope_phone')}} - | - -- {{__('validation.attributes.ope_sendalart_que1')}} - | - -- {{__('validation.attributes.ope_sendalart_que2')}} - | - -- {{__('validation.attributes.ope_sendalart_que3')}} - | - -- {{__('validation.attributes.ope_sendalart_que4')}} - | - -- {{__('validation.attributes.ope_sendalart_que5')}} - | - -- {{__('validation.attributes.ope_sendalart_que6')}} - | - -- {{__('validation.attributes.ope_sendalart_que7')}} - | - - -- {{__('validation.attributes.ope_sendalart_que8')}} - | - -- {{__('validation.attributes.ope_sendalart_que9')}} - | - - -- {{__('validation.attributes.ope_sendalart_que10')}} - | - - -- {{__('validation.attributes.ope_sendalart_que11')}} - | - - -- {{__('validation.attributes.ope_sendalart_que12')}} - | - - -- {{__('validation.attributes.ope_sendalart_que13')}} - | - - -- {{__('validation.attributes.ope_auth1')}} - | - - -- {{__('validation.attributes.ope_auth1')}} - | - - -- {{__('validation.attributes.ope_auth1')}} - | - - -- {{__('validation.attributes.ope_auth1')}} - | - -{{__('validation.attributes.ope_quit_flag')}} - | - -{{__('validation.attributes.ope_quitday')}} - | -
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {{mb_substr($item->ope_id, 0, 10)}} - | - -{{mb_substr($item->ope_name, 0, 10)}} - | -{{mb_substr($item->ope_pass, 0, 10)}} - | - -{{__(\App\Ope::OPE_TYPE[$item->ope_type])}} - | - -{{mb_substr($item->ope_mail, 0, 10)}} - | - -- {{mb_substr($item->ope_phone, 0, 15)}} | - -- {{$item->ope_sendalart_que1?__("はい"):__("いいえ")}} | - -- {{$item->ope_sendalart_que2?__("はい"):__("いいえ")}} | - -- {{$item->ope_sendalart_que3?__("はい"):__("いいえ")}} | - -- {{$item->ope_sendalart_que4?__("はい"):__("いいえ")}} | - -- {{$item->ope_sendalart_que5?__("はい"):__("いいえ")}} | - -- {{$item->ope_sendalart_que6?__("はい"):__("いいえ")}} | - -- {{$item->ope_sendalart_que7?__("はい"):__("いいえ")}} | - - -- {{$item->ope_sendalart_que8?__("はい"):__("いいえ")}} | - -- {{$item->ope_sendalart_que9?__("はい"):__("いいえ")}} | - -- {{$item->ope_sendalart_que10?__("はい"):__("いいえ")}} | - -- {{$item->ope_sendalart_que11?__("はい"):__("いいえ")}} | - -- {{$item->ope_sendalart_que12?__("はい"):__("いいえ")}} | - -- {{$item->ope_sendalart_que13?__("はい"):__("いいえ")}} | - - -- {{$item->ope_auth1}} | - -- {{$item->ope_auth2}} | - -- {{$item->ope_auth3}} | - -- {{$item->ope_auth4}} | - -{{$item->ope_quit_flag?__("退職"):__("退職しない")}} - | - -- @if($item->ope_quitday) - - {{mb_substr($item->ope_quitday, 0, 10)}} - - @endif - | -
| 操作 | +利用者ID | +利用者分類ID | +利用者名 | +フリガナ | +性別 | +生年月日 | +携帯電話番号 | +自宅電話番号 | +メールアドレス | +居住所:郵便番号 | +居住所:都道府県 | +居住所:市区群 | +居住所:住所 | +関連住所:郵便番号 | +関連住所:都道府県 | +関連住所:市区群 | +関連住所:住所 | +学校 | +卒業予定 | +備考 | +本人確認書類 | +
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| + 編集 + | +{{ $user->user_id }} | +{{ $user->user_categoryid }} | +{{ $user->user_name }} | +{{ $user->user_phonetic }} | +{{ $user->user_gender }} | +{{ $user->user_birthdate }} | +{{ $user->user_mobile }} | +{{ $user->user_homephone }} | +{{ $user->user_primemail }} | +{{ $user->user_regident_zip }} | +{{ $user->user_regident_pre }} | +{{ $user->user_regident_city }} | +{{ $user->user_regident_add }} | +{{ $user->user_relate_zip }} | +{{ $user->user_relate_pre }} | +{{ $user->user_relate_city }} | +{{ $user->user_relate_add }} | +{{ $user->user_school }} | +{{ $user->user_graduate }} | +{{ $user->user_remarks }} | +{{ $user->user_idcard }} | +
| データがありません。 | +|||||||||||||||||||||
| + | キューID | +タグシリアル | +タグシリアル64進 | +タグ発送ステータス | +利用者名 | +携帯電話番号 | +自宅電話番号 | +居住所:郵便番号 | +居住所:都道府県 | +居住所:市区郡 | +居住所:住所 | +
|---|---|---|---|---|---|---|---|---|---|---|---|
| + | {{ $user->user_seq }} | +{{ $user->user_tag_serial }} | +{{ $user->user_tag_serial_64 }} | +{{ $user->user_tag_issue }} | ++ {{ $user->user_name }} + | +{{ $user->user_mobile }} | +{{ $user->user_homephone }} | +{{ $user->user_regident_zip }} | +{{ $user->user_regident_pre }} | +{{ $user->user_regident_city }} | +{{ $user->user_regident_add }} | +
{{__('note')}}
--}} -{{__('note')}}
--}} -+ パスワード再発行に関するメールを送信します。登録済みユーザIDおよびメールアドレスを入力してください。 +
+ {{-- ★ここからエラー表示を追加★ --}} + @if ($errors->any()) +新しいパスワードを入力してください。
+ @if ($errors->any()) ++ ログイン画面に戻る +
+