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实现小型站点广告管理
Oct 09 PHP
php不用正则采集速度探究总结
Mar 24 PHP
PHP操作数组相关函数
Feb 03 PHP
深入PHP内存相关的功能特性详解
Jun 08 PHP
关于PHP session 存储方式的详细介绍
Jun 25 PHP
PHP 二维数组根据某个字段排序的具体实现
Jun 03 PHP
php中rename函数用法分析
Nov 15 PHP
ThinkPHP自定义Redis处理SESSION的实现方法
May 16 PHP
PHP利用超级全局变量$_GET来接收表单数据的实例
Nov 05 PHP
php使用PDO执行SQL语句的方法分析
Feb 16 PHP
PHP7多线程搭建教程
Apr 21 PHP
PHP+MySQL高并发加锁事务处理问题解决方法
Apr 30 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
Javascript 二维数组
2009/11/26 Javascript
jquery 注意事项与常用语法小结
2010/06/07 Javascript
js下通过prototype扩展实现indexOf的代码
2010/12/08 Javascript
js取模(求余数)隔行变色
2014/05/15 Javascript
js获取当前页面的url网址信息
2014/06/12 Javascript
confirm的用法示例用于按钮操作时确定是否执行
2014/06/19 Javascript
angularjs指令中的compile与link函数详解
2014/12/06 Javascript
浅析JavaScript中的事件机制
2015/06/04 Javascript
《JavaScript函数式编程》读后感
2015/08/07 Javascript
jQuery带时间的日期控件代码分享
2015/08/26 Javascript
EasyUI创建对话框的两种方式
2016/08/23 Javascript
jQuery基于ajax实现页面加载后检查用户登录状态的方法
2017/02/10 Javascript
关于jQuery库冲突的完美解决办法
2017/05/20 jQuery
Vue源码学习之初始化模块init.js解析
2017/11/02 Javascript
详解vue-cli 接口代理配置
2017/12/13 Javascript
使用vue开发移动端管理后台的注意事项
2019/03/07 Javascript
Angular5整合富文本编辑器TinyMCE的方法(汉化+上传)
2020/05/26 Javascript
[48:47]VGJ.S vs NB 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python中使用PDB库调试程序
2015/04/05 Python
Perl中著名的Schwartzian转换问题解决实现
2015/06/02 Python
Python中Django框架利用url来控制登录的方法
2015/07/25 Python
python中星号变量的几种特殊用法
2016/09/07 Python
Python中进程和线程的区别详解
2017/10/29 Python
详解pandas.DataFrame中删除包涵特定字符串所在的行
2019/04/04 Python
Python基于codecs模块实现文件读写案例解析
2020/05/11 Python
解锁canvas导出图片跨域的N种姿势小结
2019/01/24 HTML / CSS
香港卓悦化妆品官网:BONJOUR
2017/09/21 全球购物
服装电子商务创业计划书
2014/01/30 职场文书
经济职业学院毕业生自荐书
2014/03/17 职场文书
高中学生期末评语
2014/04/25 职场文书
纪念九一八事变演讲稿:牢记九一八,屈辱怎能忘
2014/09/14 职场文书
公司授权委托书范文
2014/09/21 职场文书
医院员工辞职信范文
2015/05/12 职场文书
Python实现生活常识解答机器人
2021/06/28 Python
centos7安装mysql5.7经验记录
2022/05/02 Servers