正在从MessageBag Laravel中删除自定义错误

正在从MessageBag Laravel中删除自定义错误,laravel,error-handling,Laravel,Error Handling,当试图登录的用户未在我的网站中注册时,我试图显示自定义错误消息。我有这个密码 if (!(User::where('nickname',$request->input('nickname'))->exists())) { // adding a custom error if user with such nickname doesn't exist $errors = new MessageBag; $errors->add('noExist',

当试图登录的用户未在我的网站中注册时,我试图显示自定义错误消息。我有这个密码

if (!(User::where('nickname',$request->input('nickname'))->exists())) {

    // adding a custom error if user with such nickname doesn't exist

    $errors = new MessageBag;

    $errors->add('noExist', 'User with such nickname doesnt exist');

    return view('login')->withErrors($errors)->with('title','Login');

}
错误会打印出来,但我想将其从MessageBag中删除,因此刷新后不会显示。如何实现这一点?

如果在
POST
方法中返回
view()
,就像控制器函数处理登录尝试一样,任何后续刷新都只需重新提交表单。由于这个原因,
ErrorBag
不会像您预期的那样刷新(返回默认状态)。要解决此问题,请使用适当的
重定向()
来处理重新呈现
视图()


$errors
将从
POST
请求传回
GET
请求处理
登录
视图的显示,刷新时将被清除。

不要在
POST
方法中返回
视图();重定向回
GET
版本,错误将显示一次,刷新/重新提交后,错误将不会再次显示(除非再次触发)。您可以显示一个重定向回
GET
版本的示例吗?当然,例如
return redirect(/login”)->withErrors($errors)。只要您有一个与
/login
匹配的路由(我假设登录屏幕使用该路由),并且您在
重定向()
上使用
->withErrors()
,它就应该在后续的
GET
请求中显示它们。非常感谢,太棒了;我会转换成一个答案,等一下。
// return view('login')->withErrors($errors)->with('title','Login');
return redirect("/login")->withErrors($errors);