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 相关文章推荐
NT IIS下用ODBC连接数据库
Oct 09 PHP
cache_lite试用
Feb 14 PHP
php小经验:解析preg_match与preg_match_all 函数
Jun 29 PHP
如何阻止网站被恶意反向代理访问(防网站镜像)
Mar 18 PHP
PHP类的声明与实例化及构造方法与析构方法详解
Jan 26 PHP
php读取txt文件并将数据插入到数据库
Feb 23 PHP
php实现搜索类封装示例
Mar 31 PHP
PHP使用第三方即时获取物流动态实例详解
Apr 27 PHP
PHP正则匹配操作简单示例【preg_match_all应用】
Jul 10 PHP
php中各种定义变量的方法小结
Oct 18 PHP
PHP操作Redis数据库常用方法示例
Aug 25 PHP
php引用和拷贝的区别知识点总结
Sep 23 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设计模式 php实现命令模式(command)
2015/12/08 PHP
PHP 实现页面静态化的几种方法
2017/07/23 PHP
jQuery中:submit选择器用法实例
2015/01/03 Javascript
JavaScript之数组(Array)详解
2015/04/01 Javascript
JavaScript的9种继承实现方式归纳
2015/05/18 Javascript
jquery.mousewheel实现整屏翻屏效果
2015/08/30 Javascript
jQuery实现鼠标滑过链接控制图片的滑动展开与隐藏效果
2015/10/28 Javascript
Jquery插件仿百度搜索关键字自动匹配功能
2016/05/11 Javascript
Vue.js 2.0 移动端拍照压缩图片预览及上传实例
2017/04/27 Javascript
ZeroClipboard.js使用一个flash复制多个文本框
2017/06/19 Javascript
值得收藏的八个常用的js正则表达式
2018/10/19 Javascript
jQuery移动端跑马灯抽奖特效升级版(抽奖概率固定)实现方法
2019/01/18 jQuery
Vue使用JSEncrypt实现rsa加密及挂载方法
2020/02/07 Javascript
微信小程序多列表渲染数据开关互不影响的实现
2020/06/05 Javascript
从源码角度来回答keep-alive组件的缓存原理
2021/01/18 Javascript
three.js 实现露珠滴落动画效果的示例代码
2021/03/01 Javascript
python实现目录树生成示例
2014/03/28 Python
Python网络爬虫实例讲解
2016/04/28 Python
Python实现将数据库一键导出为Excel表格的实例
2016/12/30 Python
Python实现的摇骰子猜大小功能小游戏示例
2017/12/18 Python
python实现雨滴下落到地面效果
2018/06/21 Python
PyQt5使用QTimer实现电子时钟
2019/07/29 Python
详解如何使用Pytest进行自动化测试
2021/01/14 Python
详解matplotlib中pyplot和面向对象两种绘图模式之间的关系
2021/01/22 Python
amaze ui 的使用详细教程
2020/08/19 HTML / CSS
Expedia法国:全球最大在线旅游公司
2018/09/30 全球购物
什么是"引用"?申明和使用"引用"要注意哪些问题?
2016/03/03 面试题
电气自动化大学生求职信
2013/10/16 职场文书
结婚保证书
2015/01/16 职场文书
租车协议书
2015/01/27 职场文书
综合实践活动报告
2015/02/05 职场文书
2015年前台个人工作总结
2015/04/03 职场文书
英语投诉信范文
2015/07/03 职场文书
导游词之南京栖霞山
2019/10/18 职场文书
在pyCharm中下载第三方库的方法
2021/04/18 Python
Oracle 死锁的检测查询及处理
2021/09/25 Oracle