当尝试登录用户时,针对特定查询显示错误,拉拉韦尔。
当尝试登录用户时,针对特定查询显示错误,拉拉韦尔。
如果尝试登录用户时某个查询返回false,我想要显示错误消息。
例如,在我的情况下,如果停用列设置为'yes',我想要向用户显示一个停用帐户的消息。
这是我的登录方法代码,我尝试添加了第二个错误,但是只要登录失败,两个错误都会返回,而不考虑失败的查询:
public function login(Request $request) { $message = array( 'required.email' => '邮箱必填', 'required.password' => '密码必填', ); $this->validate($request, [ 'email' => 'required|email', 'password' => 'required|min:8', ]); $email = $request->email; $pass = $request->password; if (Auth::attempt([ 'email' => $email, 'password' => $pass, 'verified' => 'yes' ], $request->get('remember'))) { return redirect()->intended(route('user.account.index')); } else { return redirect()->back()->withErrors( [ 'email' => '这些凭证与我们的记录不匹配或此用户已被停用!', 'verified' => '此用户帐户已停用!请联系支持!' ] ); } }
这是我的登录视图:
问题:当尝试登录用户时,特定查询的显示错误。
原因:可能是因为使用了redirect witherror方法导致的问题。
解决方法:建议使用session flash messages代替redirect witherror方法。它具有在多种情况下运行自定义消息的优势。可以像这样实现:https://www.itsolutionstuff.com/post/laravel-5-implement-flash-messages-with-exampleexample.html。另外,建议查看这个链接以了解如何根据条件自定义消息:In Laravel, the best way to pass different types of flash messages in the session。