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 AJAX实例根据邮编自动完成地址信息
Nov 23 PHP
php 无法载入mysql扩展
Mar 12 PHP
基于PHP CURL用法的深入分析
Jun 09 PHP
解析wamp5下虚拟机配置文档
Jun 27 PHP
php上传图片到指定位置路径保存到数据库的具体实现
Dec 30 PHP
用php来限制每个ip每天浏览页面数量的实现思路
Feb 24 PHP
新浪微博OAuth认证和储存的主要过程详解
Mar 27 PHP
PHP获取数组最大值下标的方法
May 12 PHP
php面向对象与面向过程两种方法给图片添加文字水印
Aug 26 PHP
php 防止表单重复提交两种实现方法
Nov 03 PHP
php从数据库中获取数据用ajax传送到前台的方法
Aug 20 PHP
laravel 自定义常量的两种方案
Oct 14 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
咖啡因含量是由谁决定的?低因咖啡怎么来?低因咖啡适合什么人喝
2021/03/06 新手入门
PHP处理postfix邮件内容的方法
2015/06/16 PHP
PHP实现可添加水印与生成缩略图的图片处理工具类
2018/01/16 PHP
php设计模式之建造器模式分析【星际争霸游戏案例】
2020/01/23 PHP
php计数排序算法的实现代码(附四个实例代码)
2020/03/31 PHP
(推荐一个超好的JS函数库)S.Sams Lifexperience ScriptClassLib
2007/04/29 Javascript
IE 上下滚动展示模仿Marquee机制
2009/12/20 Javascript
十个优秀的Ajax/Javascript实例网站收集
2010/03/31 Javascript
JavaScript高级程序设计 阅读笔记(十八) js跨平台的事件
2012/08/14 Javascript
Jquery通过JSON字符串创建JSON对象
2014/08/24 Javascript
使用jquery解析XML示例代码
2014/09/05 Javascript
Javascript实现图片轮播效果(二)图片序列节点的控制实现
2016/02/17 Javascript
javascript prototype原型详解(比较基础)
2016/12/26 Javascript
JS和canvas实现俄罗斯方块
2017/03/14 Javascript
js实现把时间戳转换为yyyy-MM-dd hh:mm 格式(es6语法)
2017/12/28 Javascript
从零开始最小实现react服务器渲染详解
2018/01/26 Javascript
vue-cli 脚手架基于Nightwatch的端到端测试环境的过程
2018/09/30 Javascript
浅谈JS中this在各个场景下的指向
2019/08/14 Javascript
layui点击按钮页面会自动刷新的解决方案
2019/10/25 Javascript
JS 遍历 json 和 JQuery 遍历json操作完整示例
2019/11/11 jQuery
Vue作用域插槽实现方法及作用详解
2020/07/08 Javascript
在Vue中使用Select选择器拼接label的操作
2020/10/22 Javascript
计算pytorch标准化(Normalize)所需要数据集的均值和方差实例
2020/01/15 Python
解决django xadmin主题不显示和只显示bootstrap2的问题
2020/03/30 Python
Pyinstaller 打包发布经验总结
2020/06/02 Python
Sentry错误日志监控使用方法解析
2020/11/12 Python
HTML5中判断用户是否正在浏览页面的方法
2014/05/03 HTML / CSS
西班牙太阳镜品牌:Hawkers
2018/03/11 全球购物
iostream与iostream.h的区别
2015/01/16 面试题
学生手册家长评语
2014/02/10 职场文书
会计求职自荐信
2014/06/20 职场文书
领导班子党的群众路线教育实践活动对照检查材料
2014/09/25 职场文书
小学课改工作总结
2015/08/13 职场文书
2016简历自荐信优秀范文
2016/01/29 职场文书
golang interface判断为空nil的实现代码
2021/04/24 Golang
python使用opencv对图像添加噪声(高斯/椒盐/泊松/斑点)
2022/04/06 Python