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去掉字符串的最后一个字符附substr()的用法
Mar 23 PHP
php中json_decode()和json_encode()的使用方法
Jun 04 PHP
基于header的一些常用指令详解
Jun 06 PHP
PHP利用str_replace防注入的方法
Nov 10 PHP
php实现的太平洋时间和北京时间互转的自定义函数分享
Aug 19 PHP
php数组操作之键名比较与差集、交集赋值的方法
Nov 10 PHP
php实现爬取和分析知乎用户数据
Jan 26 PHP
AES加解密在php接口请求过程中的应用示例
Oct 26 PHP
浅谈PHP中类和对象的相关函数
Apr 26 PHP
phpmyadmin下载、安装、配置教程
May 16 PHP
php实现用户注册密码的crypt加密
Jun 08 PHP
Laravel学习教程之IOC容器的介绍与用例
Aug 15 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
dede全站URL静态化改造[070414更正]
2007/04/17 PHP
基于PHP CURL获取邮箱地址的详解
2013/06/03 PHP
无刷新动态加载数据 滚动条加载适合评论等页面
2013/10/16 PHP
举例讲解PHP面对对象编程的多态
2015/08/12 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
2017/11/10 PHP
PHP精确到毫秒秒杀倒计时实例详解
2019/03/14 PHP
ECMAScript 基础知识
2007/06/29 Javascript
jQuery Validation实例代码 让验证变得如此容易
2010/10/18 Javascript
Javascript 倒计时源代码.(时.分.秒) 详细注释版
2011/05/09 Javascript
JS 控件事件小结
2012/10/31 Javascript
JQuery动画和停止动画实例代码
2013/03/01 Javascript
js中split函数的使用方法说明
2013/12/26 Javascript
js字符串转换成数字与数字转换成字符串的实现方法
2014/01/08 Javascript
详解JavaScript语言的基本语法要求
2015/11/20 Javascript
nodejs模块nodemailer基本使用-邮件发送示例(支持附件)
2017/03/28 NodeJs
使用JS在浏览器中判断当前网络连接状态的几种方法
2017/05/05 Javascript
vue2.0之多页面的开发的示例
2018/01/30 Javascript
vue2.0 路由不显示router-view的解决方法
2018/03/06 Javascript
基于Vue自定义指令实现按钮级权限控制思路详解
2018/05/23 Javascript
ES6中Symbol、Set和Map用法详解
2019/08/20 Javascript
vue实现路由不变的情况下,刷新页面操作示例
2020/02/02 Javascript
浅谈Vue2.4.0 $attrs与inheritAttrs的具体使用
2020/03/08 Javascript
[01:03]悬念揭晓 11月26日DOTA2完美盛典不见不散
2017/11/23 DOTA
[49:08]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第一场 11.27
2020/12/01 DOTA
浅析python中numpy包中的argsort函数的使用
2018/08/30 Python
tensorflow之变量初始化(tf.Variable)使用详解
2020/02/06 Python
自考毕业生自我鉴定
2013/11/04 职场文书
酒店开业庆典主持词
2014/03/21 职场文书
委托书样本
2014/04/02 职场文书
党员组织生活会发言材料
2014/10/17 职场文书
党员示范岗材料
2014/12/19 职场文书
2015年医务科工作总结范文
2015/05/26 职场文书
幼儿园教师培训心得体会
2016/01/21 职场文书
Python 可迭代对象 iterable的具体使用
2021/08/07 Python
Go 语言中 20 个占位符的整理
2021/10/16 Golang
Javascript webpack动态import
2022/04/19 Javascript