2016-11-29 36 views
2

如何将自定义错误包添加到laravel中的deafault auth?因为我在一页上有两种形式(登录和注册),如果用户犯错,他应该在正确输入下面看到错误,但这两种形式都有相同的名称。Laravel单页验证(相同字段名称)

我不想在供应商文件中集成。

我知道如何解决这个问题,只需要编辑:

vendor/laravel/framework/src/Illuminate/Foundation/Auth/AuthenticatesUsers.php 

,并添加错误袋:

protected function sendFailedLoginResponse(Request $request) 
{ 
    return redirect()->back() 
     ->withInput($request->only($this->username(), 'remember')) 
     ->withErrors([ 
      $this->username() => Lang::get('auth.failed'), 
     ], 'login' <--); 
} 

但我怎么能做到这一点,而不编辑供应商的文件?

+0

请显示该页面的视图。 – GabMic

+0

@GrowingDev https://gist.github.com/anonymous/bb35f57609bcc5841d38452b67614639 –

+0

更改其中一个名称。这应该可以帮助你从另一个角度区分差异。我假设错误在密码和电子邮件字段中。将注册表单中的这些字段更改为“registration_email”和“registration_password”,这应该有所斩获。 – GabMic

回答

0

这是因为您为这两个表单返回的错误具有相同的名称。 @if ($errors->has('email'))用于登录和注册。返回@if ($errors->has('email'))的两个中的任何一个都将显示在另一个上。由于错误存储在会话中,并且has()方法只检查会话是否存在并显示错误。

+0

是的,我知道为什么冲突,但我正在寻找好的解决方案。我不想重命名输入名称或编辑供应商文件。 –

+0

显示表单提交时控制器的一些示例代码。 – Michel

相关问题