2017-05-30 136 views
0

我想知道如何在登錄後重定向用戶?Laravel登錄後重定向到之前的動態頁面

可以說我在頁面上「www.mysite.com/users/2」 然後我嘗試編輯一篇博客文章,但沒有登錄併發送到登錄頁面,登錄後我希望返回以 「www.mysite.com/users/2」

我有這個到目前爲止已經試過:

if (Auth::attempt($credentials,$remember)) { 
      return redirect()->back(); 
     } else { 
      return redirect()->back()->withErrors([trans('api.couldnotlogin')]); 
     } 

return redirect()->back();只會重定向我 「www.mysite.com/」

更新

我得到它的工作使用這樣的:

public function showLoginForm() 
    { 
     $previous_url = Session::get('_previous.url'); 
     $ref = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : ''; 
     $ref = rtrim($ref, '/'); 
     if ($previous_url != url('login')) { 
      Session::put('referrer', $ref); 
      if ($previous_url == $ref) { 
       Session::put('url.intended', $ref); 
      } 
     } 
     return view('auth.login'); 
    } 

    public function loginUser(ApiAuthUserPassRequest $request) 
    { 
     if ($request->has('rememberme')) { 
      $remember = $request->input('rememberme'); 
     } else { 
     $remember = false; 
     } 
     $credentials = ['email' => $request->input('email'), 'password' => $request->input('password')]; 
     if (Auth::attempt($credentials,$remember)) { 
      if (Session::has('referrer')) { 
       return redirect()->intended(Session::pull('referrer')); 
      } else { 
       return redirect('/account'); 
      } 
     } else { 
      return redirect()->back()->withErrors([trans('api.couldnotlogin')]); 
     } 

    } 
+0

爲什麼不使用laravel默認登錄? – jycr753

+0

@ jycr753因爲我接受不同類型的用戶,所以我做了我自己的登錄,無論如何我現在都在工作。看到我更新的問題 – user2722667

+0

@ user2722667試試這個'return Redirect :: intended();' –

回答

0

Laravel 5.1具有特質Illuminate/Foundation/Validation/ValidatesRequests.php與方法

protected function getRedirectUrl() 
{ 
    return app(UrlGenerator::class)->previous(); 
} 

其中UrlGeneratorIlluminate/Routing/UrlGenerator.php。您可以嘗試使用previous()方法。

+1

我試過,但我剛剛被重定向到「/」我正在使用L5。 4如果這很重要,無論如何我現在就能工作,看到我更新的問題 – user2722667