使用表单验证,建立数据验证层,Ajax 统一返回验证错误信息
在开发项目的时候,数据的验证是必不可少的一环。在laravel中我们可以把这块的逻辑单独独立出来。
以提高我们的代码的可阅读性。
抛出的问题
使用的laravel 框架 是5.3
那我们使用了以下命令创建了验证类后,我们怎么进行统一的验证错误消息返回呢?
$ php artisan make:request RoleRequest
我们的项目在ajax或Http的时候 都有统一的返回格式。如:
return response()->json([
'code' => $code,
'status' => $status == 1 ? 'SUCCESS' : 'FAIL',
'msg' => $msg,
'data' => $data,
]);
我们希望在验证数据有错误时,返回的信息的格式也要按这个格式。以方便我们前端好处理。
解决办法:
找到框架的异常处理类
路径:app\Exceptions\Handler.php
在这个类文件中有两个方法:report() 记录异常信息, render() 异常响应输出
我们在render() 方法中写下如下代码。
if ($exception instanceof ValidationException) {
if($request->ajax()){
$errorMsg = toiIndexArr(json_decode($exception->getResponse()->getContent(),true));
return returnData(10002,0,[$errorMsg],$errorMsg[0]);
}
}
思路:
1.判断异常是否来自于 验证异常
2.判断是否是ajax请求
3.获取验证错误信息并处理成索引数组,原来是关联数组。
4.统一格式返回。
你有更好的解决方案
针对这些问题,让我们共同参与,做一个laravel 的布道者,同时也能提升你自身的能力。
本作品采用《CC 协议》,转载必须注明作者和本文链接