Laravel中如何优雅的处理错误?
是这样的, 我在写登录验证的时候遇到了一个这样的问题。
我在store
方法中进行了登录验证。
其中 StoreLoginPost
类主要是进行了各种表单验证,
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class StoreLoginPost extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* 验证规则
*
* @return array
*/
public function rules()
{
return [
'account' => 'required',
'password' => 'required|min:6',
];
}
/**
* 提示消息处理
*
* @return array
*/
public function messages()
{
return [
'account.required' => '用户名不能为空',
'password.required' => '密码不能为空',
'password.min' => '密码不能少于六位',
];
}
}
当表单提交的时候,如果不符合我要求的规则会返回一个Illuminate\Support\MessageBag $errors
对象,
而我则从$errors
对象中获取错误信息以提示用户表单的不符合规则,
这是表单验证错误的,
如果数据库中查询不到用户,如图一中红色框出来的部分,我应该怎么优雅的处理这个错误,难道只能用flash session
?
闪存固好,但是我觉得有一些别扭, 正如图二的三个箭头示意,错误既存在$errors
中也存在session
中,是否能统一的处理, 或者有更好的处理方法, 望指教。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
可以在FormRequest这个子类里面添加rule, 就是判断密码对不对的.
使用 ->withErrors(['msg' => '验证失败']), 可以在模板里统一使用$errors变量.