2016-05-02 69 views
0

我已經得到了重定向inteded爲我的登錄流程工作。但是我想在註冊後將用戶導航到有意識的頁面。Laravel 5.2重定向後註冊

如果用戶未登錄並嘗試訪問受保護的路由,我已經將行爲更改爲重定向到註冊頁面。

但是,在成功註冊後,他不會被重定向到有意的路線。登錄後它正在工作。

return redirect()->guest('/auth/register'); 

回答

0

您可以使用$redirectPath變量來做到這一點。下面簡單的線以上將用於登錄成功,併成功註冊您的Auth/AuthController.php

protected $redirectPath= '/yourURL';

重定向路徑內添加到AuthController類。

如果你只是想註冊後重定向和無法登錄,那麼你就需要自定義postRegister()功能:

public function postRegister(Request $request) 
{ 
    $validator = $this->registrar->validator($request->all()); 
    if ($validator->fails()) 
    { 
     $this->throwValidationException(
      $request, $validator 
     ); 
    } 
    $this->auth->login($this->registrar->create($request->all()));  
    //Set your redirect path below 
    return redirect('/plan'); 
} 
+0

謝謝 - 但問題是,我想要去的目標網頁 - 例如有人試圖訪問/計劃/ 5或/計劃/ 3 - 他將被迫登錄/註冊。在這兩種情況下,我都想直接將它們路由到計劃 –

+0

@FrankProvost我看到了,所以當他們點擊URI「/ plans/{id}」時,您希望他們能夠訪問該頁面,無論他們是否已登錄? – James

+0

其實沒有:)的工作流程是這樣的:未註冊的用戶調用/計劃/ {id} - >獲取重定向到註冊頁面 - >寄存器 - >獲取重定向到預期/計劃/ {id} 此流程工作完美,登錄,但不能與註冊 –

0

您可以設置預期頁面作爲會話變種。

return redirect()->guest('/auth/register')->with('intendedUrl', $request->path()); 

然後只是在註冊後再次拿起它。

$intendedUrl = $request->session()->get('intendedUrl'); 

不要忘記清除會話var雖然。

0
return redirect()->intended('/auth/register'); 
0

在Laravel 5.5,你需要在用戶註冊控制器中刪除$redirectTo變量,並創建一個redirectTo函數,而不是爲:

public function redirectTo() 
{ 
    $intended = Session::get('url.intended'); 

    if (!empty($intended)) { 
     Session::forget('url.intended'); 
     return $intended; 
    } 

    return 'YOUR_NORMAL_URL'; 
} 

確保寄存器控制器使用RegistersUsers。如果檢查RedirectsUsers特質這是在RegistersUsers特點使用有這樣的功能:

public function redirectPath() 
{ 
    if (method_exists($this, 'redirectTo')) { 
     return $this->redirectTo(); 
    } 

    return property_exists($this, 'redirectTo') ? $this->redirectTo : '/home'; 
} 

它首先檢查redirectTo功能。

希望這有助於某人。