Laravel框架FormRequest中重写错误处理的方法


Posted in PHP onFebruary 18, 2019

laravel 框架中默认的validate验证,在处理错误的时候,默认是返回上一页,当为ajax的时候才会返回Json。如果我们要一直返回Json的话,那么需要重写错误处理

如下:在Requests目录只用 新建BaseRequest

Laravel框架FormRequest中重写错误处理的方法

代码如下

<?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 相关文章推荐
PHP初学者头疼问题总结
Jul 08 PHP
如何在PHP中使用Oracle数据库(2)
Oct 09 PHP
thinkphp模板输出技巧汇总
Nov 24 PHP
php字符串截取函数用法分析
Nov 25 PHP
php中smarty模板条件判断用法实例
Jun 11 PHP
PHP实现事件机制的方法
Jul 10 PHP
PHP 生成微信红包代码简单
Mar 25 PHP
php单链表实现代码分享
Jul 04 PHP
PHP使用mysql与mysqli连接Mysql数据库用法示例
Jul 07 PHP
php实现的简单中文验证码功能示例
Jan 03 PHP
Laravel5.7 Eloquent ORM快速入门详解
Apr 12 PHP
Thinkphp5.0框架使用模型Model的获取器、修改器、软删除数据操作示例
Oct 11 PHP
php原生数据库分页的代码实例
Feb 18 #PHP
PHP实现文字写入图片功能
Feb 18 #PHP
php分享朋友圈的实现代码
Feb 18 #PHP
php微信分享到朋友圈、QQ、朋友、微博
Feb 18 #PHP
php实现微信分享朋友链接功能
Feb 18 #PHP
PHP实现唤起微信支付功能
Feb 18 #PHP
thinkphp5使用无限极分类
Feb 18 #PHP
You might like
真正的ZIP文件操作类(php)
2007/07/21 PHP
PHP 常用函数库和一些实用小技巧
2009/01/01 PHP
PHP ? EasyUI DataGrid 资料取的方式介绍
2012/11/07 PHP
基于PHP实现微信小程序客服消息功能
2019/08/12 PHP
跟着JQuery API学Jquery 之三 筛选
2010/04/09 Javascript
基于JQuery的一句代码实现表格的简单筛选
2010/07/26 Javascript
JQuery切换显示的效果实例代码
2013/02/27 Javascript
JS判断表单输入是否为空(示例代码)
2013/12/23 Javascript
深入浅出理解javaScript原型链
2015/05/09 Javascript
jQuery代码实现表格中点击相应行变色功能
2016/05/09 Javascript
一个超简单的jQuery回调函数例子(分享)
2016/08/08 Javascript
微信公众平台开发教程(六)获取个性二维码的实例
2016/12/02 Javascript
Angular6 用户自定义标签开发的实现方法
2019/01/08 Javascript
[01:36:57]【09DOTA2第一视角】小骷髅
2014/04/16 DOTA
[01:06:32]DOTA2上海特级锦标赛D组资格赛#1 EG VS VP第一局
2016/02/28 DOTA
[01:00:52]2018DOTA2亚洲邀请赛 4.4 淘汰赛 EG vs LGD 第一场
2018/04/05 DOTA
Python中利用函数装饰器实现备忘功能
2015/03/30 Python
浅析Python中的序列化存储的方法
2015/04/28 Python
进一步探究Python中的正则表达式
2015/04/28 Python
Python写入数据到MP3文件中的方法
2015/07/10 Python
让Python更加充分的使用Sqlite3
2017/12/11 Python
10个Python小技巧你值得拥有
2018/09/29 Python
解决python3 安装完Pycurl在import pycurl时报错的问题
2018/10/15 Python
Python二叉树的镜像转换实现方法示例
2019/03/06 Python
如何以Winsows Service方式运行JupyterLab
2020/08/30 Python
Python基于pillow库实现生成图片水印
2020/09/14 Python
python绘图pyecharts+pandas的使用详解
2020/12/13 Python
Pandas DataFrame求差集的示例代码
2020/12/13 Python
结合CSS3的布局新特征谈谈常见布局方法
2016/01/22 HTML / CSS
JAVA的事件委托机制和垃圾回收机制
2014/09/07 面试题
上海某公司.net方向笔试题
2014/09/14 面试题
大学班级文化建设方案
2014/05/06 职场文书
世界气象日活动总结
2015/02/27 职场文书
2019大学毕业晚会主持词
2019/06/21 职场文书
如何让vue长列表快速加载
2021/03/29 Vue.js
「回转企鹅罐」10周年纪念展「輪るピングドラム展」海报公开
2022/03/22 日漫