Laravel ログイン後に元の宛先にリダイレクトする
この機能は Web アプリケーションで頻繁に必要になります。 Laravel は重要な機能にエレガントなソリューションを提供しているため、これが機会を逃したのではないかという疑問が生じます。
Laravel 5.3 以降の場合
Scott が指摘したように、ネイティブメソッドが存在します:
return redirect()->intended('defaultpage');
Laravel 5 まで5.2
認証ミドルウェア:
// redirect to "/login" and store the URL in session if (Auth::guest()) { return redirect()->guest('login'); }
ログインアクション:
// redirect back to intended page or default if not available if (Auth::attempt(['email' => $email, 'password' => $password])) { return redirect()->intended('defaultpage'); }
ララベル4
以前のバージョンでは公式サポートはありませんでしたが、引き続き実装できます:
認証フィルター:
// redirect to "/login" and store the URL in session Route::filter('auth', function() { if (Auth::guest()) { return Redirect::guest('login'); } });
ログインアクション:
// redirect back to intended page or default if not available if (Auth::attempt(['email' => $email, 'password' => $password])) { return Redirect::intended('defaultpage'); }
Laravel 3 の場合
以前のアプローチには、セッションにリダイレクトを保存することが含まれます:
Authフィルター:
Route::filter('auth', function() { if (Auth::guest()) { Session::put('redirect', URL::full()); return Redirect::to('/login'); } if ($redirect = Session::get('redirect')) { Session::forget('redirect'); return Redirect::to($redirect); } });
コントローラー:
// login action public function post_login() { if (Auth::attempt($credentials)) { return Redirect::to('logged_in_homepage_here'); } return Redirect::to('login')->with_input(); }
このアプローチにより、任意のコンポーネントが後続の取得のためにセッション内にリダイレクトを設定できるようになります。
以上がLaravel ログイン後にユーザーを元の宛先にリダイレクトするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。