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 str_pad 函数使用详解
Jan 13 PHP
phpinfo 系统查看参数函数代码
Jun 05 PHP
php统计文件大小,以GB、MB、KB、B输出
May 29 PHP
获取URL文件名后缀
Oct 24 PHP
zend optimizer在wamp的基础上安装图文教程
Oct 26 PHP
PHP循环结构实例讲解
Feb 10 PHP
Apache服务器下防止图片盗链的办法
Jul 06 PHP
WordPress中重置文章循环的rewind_posts()函数讲解
Jan 11 PHP
Yii2中如何使用modal弹窗(基本使用)
May 30 PHP
thinkPHP自动验证机制详解
Dec 05 PHP
PHP图片水印类的封装
Jul 06 PHP
PHP异常处理定义与使用方法分析
Jul 25 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
PHP字符串的编码问题的详细介绍
2013/04/27 PHP
php防止sql注入示例分析和几种常见攻击正则表达式
2014/01/12 PHP
Yii实现Command任务处理的方法详解
2016/07/14 PHP
Javascript 不能释放内存.
2006/09/07 Javascript
prototype.js的Ajax对象
2006/09/23 Javascript
图片格式的JavaScript和CSS速查手册
2007/08/20 Javascript
js获取当前月的第一天和最后一天的小例子
2013/11/18 Javascript
浅析JQuery UI Dialog的样式设置问题
2013/12/18 Javascript
javascript 获取iframe里页面中元素值的方法
2014/02/17 Javascript
jquery获取一个元素下面相同子元素的个数代码
2014/07/31 Javascript
JavaScript设计模式之工厂方法模式介绍
2014/12/28 Javascript
深入学习jQuery Validate表单验证(二)
2016/01/18 Javascript
AngularJS Phonecat实例讲解
2016/11/21 Javascript
js实现倒计时关键代码
2017/05/05 Javascript
Vue 2.0中生命周期与钩子函数的一些理解
2017/05/09 Javascript
基于angular实现三级联动的生日插件
2017/05/12 Javascript
js实现移动端导航点击自动滑动效果
2017/07/18 Javascript
微信小程序 自定义复选框实现代码实例
2019/09/04 Javascript
vue-cli+iview项目打包上线之后图标不显示问题及解决方法
2019/10/16 Javascript
vue中的双向数据绑定原理与常见操作技巧详解
2020/03/16 Javascript
Python3.x和Python2.x的区别介绍
2013/02/12 Python
使用python编写批量卸载手机中安装的android应用脚本
2014/07/21 Python
Python函数式编程指南(二):从函数开始
2015/06/24 Python
python3实现多线程聊天室
2018/12/12 Python
Python实现求两个数组交集的方法示例
2019/02/23 Python
python 基于TCP协议的套接字编程详解
2019/06/29 Python
Django生成PDF文档显示在网页上以及解决PDF中文显示乱码的问题
2019/07/04 Python
python matplotlib实现将图例放在图外
2020/04/17 Python
pyCharm 实现关闭代码检查
2020/06/09 Python
美国著名手表网站:Timepiece
2017/11/15 全球购物
消防安全责任书
2014/04/14 职场文书
《明天,我们毕业》教学反思
2014/04/24 职场文书
空气环保标语
2014/06/12 职场文书
教师个人工作总结范文2014
2014/11/10 职场文书
高三教师工作总结2015
2015/07/21 职场文书
为什么代码规范要求SQL语句不要过多的join
2021/06/23 MySQL