2016-10-01 137 views
1

在我的应用程序中,我使用Laravel 5.3的默认身份验证。我有两个用户可以登录的地方,我想在登录失败的情况下只重定向到这两个地方中的一个。换句话说,无论用户登录哪个视图,如果他们提交了无效的凭据,他们将始终被重定向回到一个特定的视图,而不是他们提交表单的任何视图。在Laravel 5.1中,看起来这可以通过在登录控制器中包含$loginPath变量来实现。在Laravel 5.3他们似乎采取了该选项的文件,所以我不知道如何解决这个问题了。Laravel 5.3 - 失败的登录尝试重定向

任何想法和/或建议,非常感谢。谢谢!

回答

4

编辑:我误解了您的原始问题。这已更新。

如果您需要定制这一点,你可以这样做:

打开App\Http\Controllers\Auth\LoginController(如per the docs,这一切都被php artian make:auth命令大公我假设你使用的生成)和补充一点:

/** 
* Get the failed login response instance. 
* 
* @param \Illuminate\Http\Request $request 
* @return \Illuminate\Http\Response 
*/ 
protected function sendFailedLoginResponse(Request $request) 
{ 
    return redirect()->to('/the_redirect_location') 
     ->withInput($request->only($this->username(), 'remember')) 
     ->withErrors([ 
      $this->username() => Lang::get('auth.failed'), 
     ]); 
} 

这将覆盖LoginController使用的\Illuminate\Foundation\Auth\AuthenticatesUsers特征中包含的相同方法。 redirect()->to('/the_redirect_location')是我改变的部分。最初是这样的:redirect()->back()

如果您选择使用此方法时,一定要在LoginController顶部补充一点:

use Lang; 
use Illuminate\Http\Request; 
+1

谢谢,这也是对我的作品在Laravel 5.4。 – Nebster