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
<form name="login_form" action="{{url('/login_confirm')}}" method="POST" enctype="multipart/form-data"> @csrf <div class="login_form_top"> <h1>ログイン画面</h1> </div> <div class="login_form_btm"> <input type="id" name="login_id" placeholder="ユーザーIDを入力してください"> <input type="password" name="password"placeholder="パスワードを入力してください"> <input type="hidden" name="create_user_flg" value="{{$create_user}}"> </div> <button type="submit" name="login">ログイン</button> </form>
LoginController.php
public function confirmLogin(Request $request){ $login_id = $request->login_id; $password = $request->password; $user = User::getUser($login_id, $password); if (isset($user)) { return view('index', []); }
routes
Route::get('/index', [ApiController::class, 'getIndex']); Route::get('/login', [LoginController::class, 'getLogin'])->name('login'); Route::post('/login_confirm', [LoginController::class, 'confirmLogin']);
0 コメント