我已經得到了重定向inteded爲我的登錄流程工作。但是我想在註冊後將用戶導航到有意識的頁面。Laravel 5.2重定向後註冊
如果用戶未登錄並嘗試訪問受保護的路由,我已經將行爲更改爲重定向到註冊頁面。
但是,在成功註冊後,他不會被重定向到有意的路線。登錄後它正在工作。
return redirect()->guest('/auth/register');
我已經得到了重定向inteded爲我的登錄流程工作。但是我想在註冊後將用戶導航到有意識的頁面。Laravel 5.2重定向後註冊
如果用戶未登錄並嘗試訪問受保護的路由,我已經將行爲更改爲重定向到註冊頁面。
但是,在成功註冊後,他不會被重定向到有意的路線。登錄後它正在工作。
return redirect()->guest('/auth/register');
您可以使用$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');
}
您可以設置預期頁面作爲會話變種。
return redirect()->guest('/auth/register')->with('intendedUrl', $request->path());
然後只是在註冊後再次拿起它。
$intendedUrl = $request->session()->get('intendedUrl');
不要忘記清除會話var雖然。
return redirect()->intended('/auth/register');
在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
功能。
希望這有助於某人。
謝謝 - 但問題是,我想要去的目標網頁 - 例如有人試圖訪問/計劃/ 5或/計劃/ 3 - 他將被迫登錄/註冊。在這兩種情況下,我都想直接將它們路由到計劃 –
@FrankProvost我看到了,所以當他們點擊URI「/ plans/{id}」時,您希望他們能夠訪問該頁面,無論他們是否已登錄? – James
其實沒有:)的工作流程是這樣的:未註冊的用戶調用/計劃/ {id} - >獲取重定向到註冊頁面 - >寄存器 - >獲取重定向到預期/計劃/ {id} 此流程工作完美,登錄,但不能與註冊 –