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 相关文章推荐
set_include_path在win和linux下的区别
Jan 10 PHP
php max_execution_time执行时间问题
Jul 17 PHP
利用php递归实现无限分类 格式化数组的详解
Jun 08 PHP
PHP将进程作为守护进程的方法
Mar 19 PHP
PHP实现通过Luhn算法校验信用卡卡号是否有效
Mar 23 PHP
php实现word转html的方法
Jan 22 PHP
ECSHOP完美解决Deprecated: preg_replace()报错的问题
May 17 PHP
遍历echsop的region表形成缓存的程序实例代码
Nov 01 PHP
PHP最常用的正则表达式
Feb 13 PHP
基于PHP实现的多元线性回归模拟曲线算法
Jan 30 PHP
PHP封装的验证码工具类定义与用法示例
Aug 22 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相关资料
2006/10/09 PHP
114啦源码(114la)不能生成地方房产和地方报刊问题4级页面0字节的解决方法
2012/01/12 PHP
CURL状态码列表(详细)
2013/06/27 PHP
php中AES加密解密的例子小结
2014/02/18 PHP
解析WordPress中函数钩子hook的作用及基本用法
2015/12/22 PHP
CI框架整合smarty步骤详解
2016/05/19 PHP
php基于mcrypt_encrypt和mcrypt_decrypt实现字符串加密解密的方法
2016/07/12 PHP
jQuery 添加/移除CSS类实现代码
2010/02/11 Javascript
javascript下对于事件、事件流、事件触发的顺序随便说说
2010/07/17 Javascript
Jquery解析Json格式数据过程代码
2014/10/17 Javascript
JS特效实现图片自动播放并可控的效果
2015/07/31 Javascript
JavaScript之filter_动力节点Java学院整理
2017/06/28 Javascript
基于js 各种排序方法和sort方法的区别(详解)
2018/01/03 Javascript
JS实现的简单拖拽购物车功能示例【附源码下载】
2018/01/03 Javascript
详解使用React进行组件库开发
2018/02/06 Javascript
JS Object.preventExtensions(),Object.seal()与Object.freeze()用法实例分析
2018/08/25 Javascript
jQuery插件simplePagination的使用方法示例
2020/04/28 jQuery
python实现simhash算法实例
2014/04/25 Python
使用Python编写简单的画图板程序的示例教程
2015/12/08 Python
一些常用的Python爬虫技巧汇总
2016/09/28 Python
Python3.6正式版新特性预览
2016/12/15 Python
Python 列表理解及使用方法
2017/10/27 Python
shell命令行,一键创建 python 模板文件脚本方法
2018/03/20 Python
python获取中文字符串长度的方法
2018/11/14 Python
使用Tensorflow将自己的数据分割成batch训练实例
2020/01/20 Python
Matplotlib自定义坐标轴刻度的实现示例
2020/06/18 Python
Tiqets荷兰:出售欧洲最美丽的景点和博物馆门票
2018/01/09 全球购物
博柏利美国官方网站:Burberry美国
2020/11/19 全球购物
仓库管理员岗位职责
2014/03/19 职场文书
课外科技活动总结
2014/08/27 职场文书
创先争优活动心得体会
2014/09/04 职场文书
股权转让协议书
2014/12/07 职场文书
2015年毕业实习工作总结
2014/12/12 职场文书
优秀团员个人总结
2015/02/26 职场文书
小学体育组工作总结2015
2015/07/21 职场文书
Sql Server 行数据的某列值想作为字段列显示的方法
2022/04/20 SQL Server