diff --git a/app/Http/Controllers/UserEditConfirmController.php b/app/Http/Controllers/UserEditConfirmController.php index 9bc2683..fdc189b 100644 --- a/app/Http/Controllers/UserEditConfirmController.php +++ b/app/Http/Controllers/UserEditConfirmController.php @@ -16,7 +16,6 @@ use App\Http\Controllers\Controller; class UserEditConfirmController extends Controller { use ValidatesRequests; - // GET: 確認画面表示(戻って修正するボタン等で利用) public function show(Request $request) { $user_id = session('user_id'); @@ -31,29 +30,14 @@ class UserEditConfirmController extends Controller // 直前のPOST値をold()やsession()->get('_old_input')で取得 $input = session()->get('_old_input', []); - // 利用者区分ラベル変換 - $ward_residents_label = ''; - if (isset($input['ward_residents'])) { - if ($input['ward_residents'] === '0') { - $ward_residents_label = '一般'; - } elseif ($input['ward_residents'] === '1') { - $ward_residents_label = '学生'; - } elseif ($input['ward_residents'] === '2') { - $ward_residents_label = '減免'; - } else { - $ward_residents_label = $input['ward_residents']; - } - } - return view('user.confirm', [ 'user' => $user, 'input' => $input, - 'ward_residents_label' => $ward_residents_label, - 'active_menu' => 'SWC-1-1', // この画面のID + 'active_menu' => 'SWC-1-1', // マイページメニューの選択状態用 'user_name' => $user ? $user->user_name : '', // ユーザー名(ヘッダー用) ]); } - // 編集画面からのPOSTで入力内容確認画面を表示 + public function confirm(Request $request) { $user_id = session('user_id'); @@ -92,28 +76,18 @@ class UserEditConfirmController extends Controller $input['photo_filename2'] = $filename2; } - // 利用者区分ラベル変換 - $ward_residents_label = ''; - if (isset($input['ward_residents'])) { - if ($input['ward_residents'] === '0') { - $ward_residents_label = '一般'; - } elseif ($input['ward_residents'] === '1') { - $ward_residents_label = '学生'; - } elseif ($input['ward_residents'] === '2') { - $ward_residents_label = '減免'; - } else { - $ward_residents_label = $input['ward_residents']; - } - } + \Log::info('ユーザー情報編集確認画面にアクセス', [ + 'user_id' => $user_id, + ]); return view('user.confirm', [ 'user' => $user, 'input' => $input, - 'ward_residents_label' => $ward_residents_label, - 'active_menu' => 'SWC-1-1', // この画面のID + 'active_menu' => 'SWC-1-1', // マイページメニューの選択状態用 'user_name' => $user ? $user->user_name : '', // ユーザー名(ヘッダー用) ]); } + // 入力内容確認画面から「変更を確定する」ボタン押下時 public function submit(Request $request) { @@ -126,7 +100,6 @@ class UserEditConfirmController extends Controller return redirect('/login'); } - $token = Str::random(64); $changeData = $request->except(['_token']); $changeData['user_id'] = $user_id; @@ -144,8 +117,6 @@ class UserEditConfirmController extends Controller $file2->storeAs('photo', $filename2, 'public'); $changeData['photo_filename2'] = $filename2; } - // ※ public/storage/photo で画像が参照できない場合は、 - // コマンドプロンプトで `php artisan storage:link` を実行してください。 Cache::put('change_request_' . $token, $changeData, now()->addDay()); @@ -154,8 +125,12 @@ class UserEditConfirmController extends Controller // Mailableでメール送信 Mail::to($changeData['user_primemail'])->send(new UserEditVerifyMail($verifyUrl, $user)); + \Log::info('ユーザー情報変更メール送信完了画面にアクセス', [ + 'user_id' => $user_id, + ]); + return view('user.mail_sent', [ - 'active_menu' => 'SWC-1-1', // この画面のID + 'active_menu' => 'SWC-1-1', // マイページメニューの選択状態用 'user_name' => $user ? $user->user_name : '', // ユーザー名(ヘッダー用) ]); } @@ -170,7 +145,7 @@ class UserEditConfirmController extends Controller return redirect()->route('user.edit')->withErrors(['register_expired' => '登録期間が過ぎています。もう一度登録してください。']); } - // 変更内容をDBに保存(例: userテーブル更新) + // 変更内容をDBに保存(userテーブル更新) // 更新データ生成(photo_filename1, photo_filename2, user_passは入力時のみ追加) $updateData = [ 'user_gender' => $changeData['user_gender'] ?? null, @@ -184,7 +159,9 @@ class UserEditConfirmController extends Controller 'user_mobile' => implode('-', $changeData['user_mobile'] ?? []), 'user_primemail' => $changeData['user_primemail'], 'user_submail' => $changeData['user_submail'], - 'ward_residents' => $changeData['ward_residents'], + // 利用者区分(user_categoryid)をusertypeテーブルから取得して登録 + // 画面からはuser_category(一般/学生)が渡ってくる + 'user_categoryid' => self::getUserCategoryId($changeData['user_category'] ?? null), 'user_workplace' => $changeData['user_workplace'] ?? null, 'user_school' => $changeData['user_school'] ?? null, 'user_graduate' => $changeData['user_graduate'] ?? null, @@ -192,7 +169,7 @@ class UserEditConfirmController extends Controller 'user_relate_pre' => $changeData['user_relate_pre'], 'user_relate_city' => $changeData['user_relate_city'], 'user_relate_add' => $changeData['user_relate_add'], - 'updated_at' => now(), // 追加: 認証時の日時 + 'updated_at' => now(), // ]; if (!empty($changeData['photo_filename1'])) { $updateData['photo_filename1'] = $changeData['photo_filename1']; @@ -214,6 +191,16 @@ class UserEditConfirmController extends Controller return redirect()->route('user.info')->with('success', '更新に成功しました。'); } + /** + * 利用者区分の文言(一般/学生)からuser_categoryidを取得 + */ + private static function getUserCategoryId($categoryName) + { + if (!$categoryName) return null; + $row = DB::table('usertype')->where('usertype_subject1', $categoryName)->first(); + return $row ? $row->user_categoryid : null; + } + /** * パスワードをSHA256→SALT連結→25回ストレッチでハッシュ化 */ diff --git a/app/Http/Controllers/UserEditController.php b/app/Http/Controllers/UserEditController.php index b1352cc..1b5c66d 100644 --- a/app/Http/Controllers/UserEditController.php +++ b/app/Http/Controllers/UserEditController.php @@ -19,13 +19,21 @@ class UserEditController extends Controller if (!$user_id) { return redirect('/login'); } - $user = DB::table('user')->where('user_id', $user_id)->first(); - if (!$user) { - return redirect('/login'); - } + $user = DB::table('user')->where('user_id', $user_id)->first(); - // 契約・更新期間判定(例: DBから契約情報取得) + // 利用者区分をusertypeテーブルから取得 + $user_category = ''; + if (isset($user->user_categoryid)) { + $usertype = DB::table('usertype') + ->where('user_categoryid', $user->user_categoryid) + ->first(); + if ($usertype && isset($usertype->usertype_subject1)) { + $user_category = $usertype->usertype_subject1; + } + } + + // 契約・更新期間判定 $contract = DB::table('regular_contract') ->join('park', 'regular_contract.park_id', '=', 'park.park_id') ->where('regular_contract.user_id', $user->user_id) @@ -125,11 +133,16 @@ class UserEditController extends Controller $user->user_relate_zip_1 = substr($user->user_relate_zip ?? '', 0, 3); $user->user_relate_zip_2 = substr($user->user_relate_zip ?? '', 3, 4); + \Log::info('ユーザー情報編集画面にアクセス', [ + 'user_id' => $user_id, + ]); + return view('user.edit', [ 'user' => $user, + 'user_category' => $user_category, 'is_update_period' => $is_update_period, 'in_contract_period' => $in_contract_period, - 'active_menu' => 'SWC-1-1', // この画面のID + 'active_menu' => 'SWC-1-1', // マイページメニューの選択状態用 'user_name' => $user ? $user->user_name : '', // ユーザー名(ヘッダー用) ]); } @@ -143,10 +156,6 @@ class UserEditController extends Controller return redirect('/login'); } $user = DB::table('user')->where('user_id', $user_id)->first(); - if (!$user) { - return redirect('/login'); - } - // バリデーションルール $rules = [ @@ -162,7 +171,7 @@ class UserEditController extends Controller 'user_primemail' => 'required|email', 'user_primemail_confirmation' => 'required|same:user_primemail', 'user_submail' => 'nullable|email|different:user_primemail', - 'ward_residents' => ['required', Rule::in(['0', '1', '2'])], + 'user_category' => ['required', Rule::in(['一般', '学生'])], 'user_workplace' => 'nullable|string|max:50', 'user_school' => 'nullable|string|max:50', 'user_graduate' => 'nullable|date', @@ -183,7 +192,7 @@ class UserEditController extends Controller ]; // 利用者区分による必須項目 - if ($request->ward_residents == '1') { // 学生 + if ($request->user_category == '学生') { $rules['user_school'] = 'required|string|max:50'; $rules['user_graduate'] = 'required|date'; } @@ -204,8 +213,8 @@ class UserEditController extends Controller 'user_primemail_confirmation.same' => '「メールアドレス」と「メールアドレスの確認」が一致しません。', 'user_submail.email' => '予備メールアドレスは正しい形式で入力してください。', 'user_submail.different' => 'メールアドレスと予備メールアドレスに同じアドレスを入力できません。', - 'ward_residents.required' => '利用者区分は必須です。', - 'ward_residents.in' => '利用者区分の値が不正です。', + 'user_category.required' => '利用者区分は必須です。', + 'user_category.in' => '利用者区分の値が不正です。', 'user_workplace.max' => '勤務先は50文字以内で入力してください。', 'user_school.max' => '学校名は50文字以内で入力してください。', 'user_school.required' => '学校名は必須です。', @@ -331,7 +340,7 @@ class UserEditController extends Controller 'user_workplace', 'user_school', 'user_graduate', - 'ward_residents' + 'user_category' ]; if (!$is_update_period) { @@ -367,7 +376,7 @@ class UserEditController extends Controller $user->user_submail = $request->user_submail; // 利用者区分 - $user->ward_residents = $request->ward_residents; + $user->user_category = $request->user_category; $user->user_workplace = $request->user_workplace; $user->user_school = $request->user_school; $user->user_graduate = $request->user_graduate; diff --git a/app/Http/Controllers/UserInfoController.php b/app/Http/Controllers/UserInfoController.php index edc236c..2cbeada 100644 --- a/app/Http/Controllers/UserInfoController.php +++ b/app/Http/Controllers/UserInfoController.php @@ -15,22 +15,25 @@ class UserInfoController extends Controller } $user = DB::table('user')->where('user_id', $user_id)->first(); - // 利用者区分の表示変換(取得できなければ空欄) - $ward_residents_label = ''; - if (isset($user->ward_residents)) { - if ($user->ward_residents == 0) { - $ward_residents_label = '一般'; - } elseif ($user->ward_residents == 1) { - $ward_residents_label = '学生'; - } elseif ($user->ward_residents == 2) { - $ward_residents_label = '減免'; + // 利用者区分をusertypeテーブルから取得 + $user_category = ''; + if (isset($user->user_categoryid)) { + $usertype = DB::table('usertype') + ->where('user_categoryid', $user->user_categoryid) + ->first(); + if ($usertype && isset($usertype->usertype_subject1)) { + $user_category = $usertype->usertype_subject1; } } + \Log::info('ユーザー情報確認画面にアクセス', [ + 'user_id' => $user_id, + ]); + return view('user.info', [ 'user' => $user, - 'ward_residents_label' => $ward_residents_label, - 'active_menu' => 'SWC-1-1', // この画面のID + 'user_category' => $user_category, + 'active_menu' => 'SWC-1-1', // マイページメニューの選択状態用 'user_name' => $user ? $user->user_name : '', // ユーザー名(ヘッダー用) ]); } diff --git a/resources/views/user/confirm.blade.php b/resources/views/user/confirm.blade.php index ae44783..b703079 100644 --- a/resources/views/user/confirm.blade.php +++ b/resources/views/user/confirm.blade.php @@ -108,13 +108,13 @@