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 相关文章推荐
mysq GBKl乱码
Nov 28 PHP
PHP开发框架总结收藏
Apr 24 PHP
php 保留字列表
Oct 04 PHP
Window下PHP三种运行方式图文详解
Jun 11 PHP
php查询mysql大量数据造成内存不足的解决方法
Mar 04 PHP
php中define用法实例
Jul 30 PHP
Yii2主题(Theme)用法详解
Jul 23 PHP
PHP7.1新功能之Nullable Type用法分析
Sep 26 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
Nov 17 PHP
详解PHP版本兼容之openssl调用参数
Jul 25 PHP
laravel-admin select框默认选中的方法
Oct 03 PHP
4种Windows系统下Laravel框架的开发环境安装及部署方法详解
Apr 06 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/06/06 PHP
php 常用算法和时间复杂度
2013/07/01 PHP
深入理解Javascript闭包 新手版
2010/12/28 Javascript
javascript学习笔记(十二) RegExp类型介绍
2012/06/20 Javascript
JS Replace 全部替换字符的用法小结
2013/12/24 Javascript
jquery实现textarea输入框限制字数的方法
2015/01/15 Javascript
详解MVC如何使用开源分页插件(shenniu.pager.js)
2016/12/16 Javascript
Bootstrap面板使用方法
2017/01/16 Javascript
react-router实现按需加载
2017/05/09 Javascript
jQuery实现动态添加节点与遍历节点功能示例
2017/11/09 jQuery
js 毫秒转天时分秒的实例
2017/11/17 Javascript
D3.js实现拓扑图的示例代码
2018/06/30 Javascript
vue实现多个元素或多个组件之间动画效果
2018/09/25 Javascript
p5.js临摹动态图形的方法
2019/10/23 Javascript
js实现固定区域内的不重叠随机圆
2019/10/24 Javascript
JavaScript实现滑动门效果
2020/01/18 Javascript
React实现轮播效果
2020/08/25 Javascript
python验证码识别教程之利用投影法、连通域法分割图片
2018/06/04 Python
python+mysql实现教务管理系统
2019/02/20 Python
tensorflow-gpu安装的常见问题及解决方案
2020/01/20 Python
django model 条件过滤 queryset.filter(**condtions)用法详解
2020/05/20 Python
Python bisect模块原理及常见实例
2020/06/17 Python
Python排序函数的使用方法详解
2020/12/11 Python
美国受信赖的教育产品供应商:Nest Learning
2018/06/14 全球购物
Dogeared官网:在美国手工制作的珠宝
2019/08/24 全球购物
NET程序员上机面试题
2015/05/23 面试题
Java程序员面试90题
2013/10/19 面试题
便利店投资创业计划书
2014/02/08 职场文书
优秀教师工作感言
2014/02/16 职场文书
优秀的导游求职信范文
2014/04/06 职场文书
科技活动周标语
2014/10/08 职场文书
1000字打架检讨书
2014/11/03 职场文书
出纳试用期工作总结2015
2015/05/28 职场文书
elasticSearch-api的具体操作步骤讲解
2021/06/28 Java/Android
python利用while求100内的整数和方式
2021/11/07 Python
SQL Server数据库的三种创建方法汇总
2023/05/08 MySQL