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 实用代码收集
Jan 22 PHP
PHP 检查扩展库或函数是否可用的代码
Apr 06 PHP
PHP常用特殊运算符号和函数总结(php新手入门必看)
Feb 02 PHP
深入extjs与php参数交互的详解
Jun 25 PHP
5种PHP创建数组的实例代码分享
Jan 17 PHP
php数组删除元素示例
Mar 21 PHP
Laravel模板引擎Blade中section的一些标签的区别介绍
Feb 10 PHP
利用PHP如何实现Socket服务器
Sep 23 PHP
Yii2汉字转拼音类的实例代码
Apr 18 PHP
CI框架(CodeIgniter)实现的导入、导出数据操作示例
May 24 PHP
Yii2框架中一些折磨人的坑
Dec 15 PHP
微信小程序和php的登录实现
Apr 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
让你的WINDOWS同时支持MYSQL4,MYSQL4.1,MYSQL5X
2006/12/06 PHP
令PHP初学者头疼十四条问题大总结
2008/11/12 PHP
PHP经典面试题之设计模式(经常遇到)
2015/10/15 PHP
PHP定时执行任务的3种方法详解
2015/12/21 PHP
分享php邮件管理器源码
2016/01/06 PHP
Laravel 5.4重新登录实现跳转到登录前页面的原理和方法
2017/07/13 PHP
CodeIgniter框架数据库基本操作示例
2018/05/24 PHP
PHP cookie与session会话基本用法实例分析
2019/11/18 PHP
一些相见恨晚的 JavaScript 技巧
2010/04/25 Javascript
Javascript生成json的函数代码(可以用php的json_decode解码)
2012/06/11 Javascript
jsp+javascript打造级连菜单的实例代码
2013/06/14 Javascript
JS延迟加载加快页面打开速度示例代码
2013/12/30 Javascript
纯javascript实现自动发送邮件
2015/10/21 Javascript
浅谈JavaScript函数的四种存在形态
2016/06/08 Javascript
JS实现用户注册时获取短信验证码和倒计时功能
2016/10/27 Javascript
基于zepto.js实现手机相册功能
2017/07/11 Javascript
React Native 搭建开发环境的方法步骤
2017/10/30 Javascript
利用HBuilder打包前端开发webapp为apk的方法
2017/11/13 Javascript
JavaScript实现数组全排列、去重及求最大值算法示例
2018/07/30 Javascript
vue刷新页面时去闪烁提升用户体验效果的实现方法
2018/12/10 Javascript
微信小程序绘制图片发送朋友圈
2019/07/25 Javascript
深入理解Python中装饰器的用法
2016/06/28 Python
安装Python的教程-Windows
2017/07/22 Python
100行Python代码实现自动抢火车票(附源码)
2018/01/11 Python
Python实现简单遗传算法(SGA)
2018/01/29 Python
意大利奢华内衣制造商:Cosabella
2017/08/29 全球购物
印尼极简主义和实惠的在线家具店:Fabelio
2019/03/27 全球购物
Zalando Lounge瑞士:时尚与生活方式购物俱乐部
2020/03/12 全球购物
介绍一下Java中标识符的命名规则
2014/02/03 面试题
公务员职业生涯规划书范文  
2014/01/19 职场文书
运动会广播稿400字
2014/01/25 职场文书
小学节能减排倡议书
2014/05/15 职场文书
党支部反对四风思想汇报
2014/10/10 职场文书
会议主持词通用版
2019/04/02 职场文书
确保减税降费落地生根,用实实在在措施
2019/07/19 职场文书
Mysql将字符串按照指定字符分割的正确方法
2022/05/30 MySQL