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
雖然早期版本沒有官方支持,但你仍然可以實現:
Auth Filter:
// 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中文網其他相關文章!