Laravel にて、formをpostした際のURLについて質問です。
Controllerでパラメータを受け取り、別のURLへ遷移するよう実装し、実際その通りに動きます。
しかし、URLがPOST時のURLのままで、遷移先の画面のURLに更新されません。
以下の実例で言いますと、
1.login.blade.phpを表示(url: ~/login)
2.buttonを押下し、LoginControllerのconfirmLoginへPOST(url: ~/login_confirm)
3.index.blade.phpが表示される(※url: ~/login_confirmのまま)
3のときに、url: ~/lindexとなっているはずで、動きはそうなっています。
なぜurlが変わらないのか、実装で不足があればご教示いただきたいです。
- 環境:Docker
- バージョン:Laravel Framework 9.11.0(PHP 8.0 - 8.1)
login.blade.php
1 <form name="login_form" action="{{url('/login_confirm')}}" method="POST" enctype="multipart/form-data"> 2 @csrf 3 <div class="login_form_top"> 4 <h1>ログイン画面</h1> 5 </div> 6 <div class="login_form_btm"> 7 <input type="id" name="login_id" placeholder="ユーザーIDを入力してください"> 8 <input type="password" name="password"placeholder="パスワードを入力してください"> 9 <input type="hidden" name="create_user_flg" value="{{$create_user}}"> 10 </div> 11 <button type="submit" name="login">ログイン</button> 12 </form>
LoginController.php
1 public function confirmLogin(Request $request){ 2 $login_id = $request->login_id; 3 $password = $request->password; 4 $user = User::getUser($login_id, $password); 5 if (isset($user)) { 6 return view('index', []); 7 }
routes
1Route::get('/index', [ApiController::class, 'getIndex']); 2Route::get('/login', [LoginController::class, 'getLogin'])->name('login'); 3Route::post('/login_confirm', [LoginController::class, 'confirmLogin']);
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/07/04 07:36