2015-02-11 106 views
2

我想在成功登錄後將用戶重定向到特定頁面。如何在laravel登錄後重定向特定頁面

我不希望用戶在登錄後導航到上次查看的頁面。

我已經嘗試過以下網址,但它顯示我的錯誤。

錯誤:

$credentials are required.

Laravel redirect back to original destination after login

+0

爲什麼不使用'重定向::路線(「路線名稱)'? – Mahozi 2015-02-11 05:17:52

+0

你可以發佈一些代碼,登錄後如何重定向 – Saqueib 2015-02-11 05:22:03

+0

請投票解釋一下嗎? – 2015-02-26 12:46:09

回答

2

我一直在使用登錄後下面的代碼改變重定向頁面

上一頁

return Redirect::intended('home'); 

更改爲

return Redirect::to('home'); 
+1

在哪?。方法你做了這個嗎? – user151841 2016-08-20 18:50:53

1

添加權威性過濾器,以你的路線,並添加邏輯來重定向用戶如果登錄成功還是失敗。

您的路線看起來類似:

Route::group(array('domain'=>'a.b.com', 'before'=>'auth'), function() { 

和您的過濾器將是這樣的:

Route::filter('auth', function() 
{ 
    if (Auth::user()->guest()) 
    { 
     if (Request::ajax()) 
     { 
      return Response::make('Unauthorized', 401); 
     } 
     else 
     { 
      return Redirect::guest('account/login'); 
     } 
    } 
}); 

有添加的路由和過濾器一看here,並here獲得有關過濾器的基本信息。這2個教程也將幫助: Link 1 & Link 2

在你的AccountController,嘗試添加驗證功能,裏面的東西:

if (Session::has('url.intended')) { 
$url = Session::get('url.intended'); 
Session::forget('url.intended'); // unset referring url from session 
return Redirect::to($url); // redirect to referring url 
} 
else { 
    return Redirect::to('/'); // redirect to home page 
} 
+0

在我的過濾器我有以下代碼「路線::過濾器( '權威性',函數(){ \t如果(AUTH ::客()) \t { \t \t如果(支持::阿賈克斯()) \t \t { \t \t \t迴響應::使( '未授權',401); \t \t} \t \t其他 \t \t { \t \t \t返回Redirect :: guest('') - >('Message','請登錄獲取Access'); \t \t} \t} });」 – 2015-02-11 06:26:08

+0

好吧,這是偉大的,但你有什麼想說 – 2015-02-11 06:28:00

+0

登錄 – 2015-02-11 06:29:44

0

通過自定義的驗證/ AuthController定義redirectPath屬性重定向的位置:

protected $redirectPath = '/dashboard'; 
+0

沒有用,登錄後laravel試圖去到最後一頁,我的意思是如果你刷新系統上的最後一頁(在系統上)並且你的會話結束了,laravel會發送你登錄和之後登錄它將您發送到您的最後一頁,否則返回$ redirectpath。 – 2018-01-16 16:27:47

相關問題