这篇文章主要介绍了Laravel框架FormRequest中重写错误处理的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
laravel
框架中默认的validate
验证,在处理错误的时候,默认是返回上一页,当为ajax
的时候才会返回Json
。如果我们要一直返回Json
的话,那么需要重写错误处理
如下:在Requests
目录只用 新建BaseRequest
类
代码如下
<?php
/**
* @文件名称: BaseRequest.php.
* @author: daisc
* @email: jiumengfadian@live.com
* @Date: 2019/1/8
*/
namespace App\Http\Requests\Front;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Http\Exceptions\HttpResponseException;
class BaseRequest extends FormRequest
{
public function failedValidation($validator)
{
$error= $validator->errors()->all();
// $error = $validator;
throw new HttpResponseException(response()->json(['code'=>1,'message'=>$error[0]]));
}
}
重写了failedValidation
方法,将抛出错误处理为了json
格式的。
然后在自定义的处理验证类中,继承该类就行了,
如:RegisterForm
中
<?php
namespace App\Http\Requests\Front;
class RegisterForm extends BaseRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'phone'=>'required|regex:"^1\d{10}"',
'email' => 'required|email',
'password'=>'required|confirmed'
];
}
public function messages()
{
return [
'phone.required'=>'手机号不能为空',
'phone.regex'=>'请输入正确的手机号',
];
}
}
当我们在控制器中调用RegisterForm
的时候,就回返回Json
格式的错误信息。
不分是否是AJAX
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程学习网。
沃梦达教程
本文标题为:Laravel框架FormRequest中重写错误处理的方法
猜你喜欢
- php微信公众号开发之秒杀 2022-11-23
- PHP简单实现二维数组的矩阵转置操作示例 2022-10-02
- Laravel balde模板文件中判断数据为空方法 2023-08-30
- PHP仿tp实现mvc框架基本设计思路与实现方法分析 2022-10-18
- laravel实现按月或天或小时统计mysql数据的方法 2023-02-22
- laravel通用化的CURD的实现 2023-03-17
- PHP中PDO事务处理操作示例 2022-10-15
- windows下9款一键快速搭建PHP本地运行环境的好工具(含php7.0环境) 2023-09-02
- 用nohup命令实现PHP的多进程 2023-09-02
- PHP实现微信支付(jsapi支付)流程步骤详解 2022-10-09