使用表单验证,建立数据验证层,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 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!