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 相关文章推荐
文件上传类
Oct 09 PHP
linux系统上支持php的 iconv()函数的方法
Oct 01 PHP
PHP fopen 读取带中文URL地址的一点见解
Sep 25 PHP
解析在PHP中使用mysqli扩展库对mysql的操作
Jul 03 PHP
PHP队列用法实例
Nov 05 PHP
php自动给网址加上链接的方法
Jun 02 PHP
学习php设计模式 php实现备忘录模式(Memento)
Dec 09 PHP
php pthreads多线程的安装与使用
Jan 19 PHP
基于thinkPHP类的插入数据库操作功能示例
Jan 06 PHP
PHP实现浏览器中直接输出图片的方法示例
Mar 14 PHP
Ubuntu中支持PHP5与PHP7双版本的简单实现
Aug 19 PHP
PHP结合jquery ajax实现上传多张图片,并限制图片大小操作示例
Mar 01 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 Class&amp;Object -- PHP 自排序二叉树的深入解析
2013/06/25 PHP
PHP抓取网页、解析HTML常用的方法总结
2015/07/01 PHP
PHP结合jQuery插件ajaxFileUpload实现异步上传文件实例
2020/08/17 PHP
深入浅析PHP无限极分类的案例教程
2016/05/09 PHP
遍历指定目录,并存储目录内所有文件属性信息的php代码
2016/10/28 PHP
php使用include 和require引入文件的区别
2017/02/16 PHP
PHP注释语法规范与命名规范详解篇
2018/01/21 PHP
数据结构之利用PHP实现二分搜索树
2020/10/25 PHP
40款非常棒的jQuery 插件和制作教程(系列一)
2011/10/26 Javascript
js获取控件位置以及不同浏览器中的差别介绍
2013/08/08 Javascript
document.execCommand()的用法小结
2014/01/08 Javascript
javascript实现无限级select联动菜单
2015/01/02 Javascript
jQuery找出网页上最高元素的方法
2015/03/20 Javascript
原生js实现弹出层登录拖拽功能
2016/12/05 Javascript
vue.js+Element实现表格里的增删改查
2017/01/18 Javascript
jquery实现异步加载图片(懒加载图片一种方式)
2017/04/24 jQuery
关于jQuery库冲突的完美解决办法
2017/05/20 jQuery
Vue中$refs的用法详解
2018/06/24 Javascript
解决JavaScript layui 下拉框不显示的问题
2018/08/14 Javascript
bootstrap实现点击删除按钮弹出确认框的实例代码
2018/08/16 Javascript
js实现缓动动画
2020/11/25 Javascript
[38:21]2018DOTA2亚洲邀请赛3月30日 小组赛A组 LGD VS Newbee
2018/03/31 DOTA
python实现哈希表
2014/02/07 Python
python爬虫入门教程--优雅的HTTP库requests(二)
2017/05/25 Python
Python 实现大整数乘法算法的示例代码
2019/09/17 Python
Python Mock模块原理及使用方法详解
2020/07/07 Python
CSS3 实现的缩略图悬停效果
2020/12/09 HTML / CSS
德国在线香料制造商:Gewürzland
2020/03/10 全球购物
伊莱克斯阿根廷网上商店:Tienda Electrolux
2021/03/08 全球购物
国际商务系学生个人的自我评价
2013/11/26 职场文书
年度优秀员工获奖感言
2014/08/15 职场文书
办公室个人总结
2015/02/28 职场文书
企业爱心捐款倡议书
2015/04/27 职场文书
中学教师师德师风承诺书
2015/04/28 职场文书
Spring Bean是如何初始化的详解
2022/03/22 Java/Android
Android开发手册Chip监听及ChipGroup监听
2022/06/10 Java/Android