Laravel 5.5 FormRequest 自定义错误消息

2024-02-17 09:32

本文主要是介绍Laravel 5.5 FormRequest 自定义错误消息,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Laravel 5.5 FormRequest 自定义错误消息

  使用FormRequest进行表单验证,就不用让验证逻辑和控制器里面的逻辑都混在一起。但在使用的时候呢,发现json错误返回的数据,与我们想要的有点差距。下面我给个例子:(不喜勿喷) 
  这里写图片描述

  在用ajax进行提交时,如果验证错了,那么他会返回 
  这里写图片描述 
   
  如果是权限错了,他会返回 
  这里写图片描述

  但我想要的是 
  这里写图片描述

  那怎么办呢,其实很简单 
  我们只需要在 App\Exceptions\Handler 里面重写两个函数就可以了 
  这里写图片描述
  添加上这两个函数,然后里面怎么定义,就看你了 
  记得加上 
  

       use Illuminate\Validation\ValidationException;use Illuminate\Auth\Access\AuthorizationException;
  • 1
  • 2

最后附上这两个文件的代码 
LoginPost

<?phpnamespace App\Http\Requests;use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Auth\AuthenticationException;class LoginPost extends FormRequest
{/*** Determine if the user is authorized to make this request.** @return bool*/public function authorize(){if($this->input('account')=='aaa@abc.com'){return false;}return true;}protected function failedAuthorization(){throw new AuthenticationException('该帐号已被拉黑');}/*** Get the validation rules that apply to the request.** @return array*/public function rules(){return ['account'=>['required','regex:/^1[34578][0-9]\d{4,8}|(\w)+(\.\w+)*@(\w)+((\.\w+)+)|[0-9a-zA-Z_]+$/',//验证为手机号,邮箱,或帐号],'password'=>'required|between:6,18',//验证密码];}public function messages(){return ['account.required' => '帐号不能为空','account.regex' => '帐号不合法','password.required'  => '密码不能为空','password.between'  => '密码错误',];}}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54

Handler

<?phpnamespace App\Exceptions;use Exception;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
use Illuminate\Validation\ValidationException;
use Illuminate\Auth\AuthenticationException;class Handler extends ExceptionHandler
{/*** A list of the exception types that are not reported.** @var array*/protected $dontReport = [//];/*** A list of the inputs that are never flashed for validation exceptions.** @var array*/protected $dontFlash = ['password','password_confirmation',];/*** Report or log an exception.** This is a great spot to send exceptions to Sentry, Bugsnag, etc.** @param  \Exception  $exception* @return void*/public function report(Exception $exception){parent::report($exception);}/*** Render an exception into an HTTP response.** @param  \Illuminate\Http\Request  $request* @param  \Exception  $exception* @return \Illuminate\Http\Response*/public function render($request, Exception $exception){return parent::render($request, $exception);}protected function unauthenticated($request, AuthenticationException $exception){if($request->expectsJson()){$response=response()->json(['status'=>3,'msg' => $exception->getMessage(),'errors'=>[],], 200);}else{$response=redirect()->guest(route('login'));}return $response;}protected function invalidJson($request, ValidationException $exception){return response()->json(['status'=>2,'msg' => $exception->getMessage(),'errors' => $exception->errors(),], $exception->status);}
}

这篇关于Laravel 5.5 FormRequest 自定义错误消息的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/717366

相关文章

SpringBoot+Docker+Graylog 如何让错误自动报警

《SpringBoot+Docker+Graylog如何让错误自动报警》SpringBoot默认使用SLF4J与Logback,支持多日志级别和配置方式,可输出到控制台、文件及远程服务器,集成ELK... 目录01 Spring Boot 默认日志框架解析02 Spring Boot 日志级别详解03 Sp

java向微信服务号发送消息的完整步骤实例

《java向微信服务号发送消息的完整步骤实例》:本文主要介绍java向微信服务号发送消息的相关资料,包括申请测试号获取appID/appsecret、关注公众号获取openID、配置消息模板及代码... 目录步骤1. 申请测试系统2. 公众号账号信息3. 关注测试号二维码4. 消息模板接口5. Java测试

Java实现自定义table宽高的示例代码

《Java实现自定义table宽高的示例代码》在桌面应用、管理系统乃至报表工具中,表格(JTable)作为最常用的数据展示组件,不仅承载对数据的增删改查,还需要配合布局与视觉需求,而JavaSwing... 目录一、项目背景详细介绍二、项目需求详细介绍三、相关技术详细介绍四、实现思路详细介绍五、完整实现代码

一文详解Java Stream的sorted自定义排序

《一文详解JavaStream的sorted自定义排序》Javastream中的sorted方法是用于对流中的元素进行排序的方法,它可以接受一个comparator参数,用于指定排序规则,sorte... 目录一、sorted 操作的基础原理二、自定义排序的实现方式1. Comparator 接口的 Lam

SpringBoot排查和解决JSON解析错误(400 Bad Request)的方法

《SpringBoot排查和解决JSON解析错误(400BadRequest)的方法》在开发SpringBootRESTfulAPI时,客户端与服务端的数据交互通常使用JSON格式,然而,JSON... 目录问题背景1. 问题描述2. 错误分析解决方案1. 手动重新输入jsON2. 使用工具清理JSON3.

如何自定义一个log适配器starter

《如何自定义一个log适配器starter》:本文主要介绍如何自定义一个log适配器starter的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录需求Starter 项目目录结构pom.XML 配置LogInitializer实现MDCInterceptor

如何解决Druid线程池Cause:java.sql.SQLRecoverableException:IO错误:Socket read timed out的问题

《如何解决Druid线程池Cause:java.sql.SQLRecoverableException:IO错误:Socketreadtimedout的问题》:本文主要介绍解决Druid线程... 目录异常信息触发场景找到版本发布更新的说明从版本更新信息可以看到该默认逻辑已经去除总结异常信息触发场景复

Python struct.unpack() 用法及常见错误详解

《Pythonstruct.unpack()用法及常见错误详解》struct.unpack()是Python中用于将二进制数据(字节序列)解析为Python数据类型的函数,通常与struct.pa... 目录一、函数语法二、格式字符串详解三、使用示例示例 1:解析整数和浮点数示例 2:解析字符串示例 3:解

CentOS 7 YUM源配置错误的解决方法

《CentOS7YUM源配置错误的解决方法》在使用虚拟机安装CentOS7系统时,我们可能会遇到YUM源配置错误的问题,导致无法正常下载软件包,为了解决这个问题,我们可以替换YUM源... 目录一、备份原有的 YUM 源配置文件二、选择并配置新的 YUM 源三、清理旧的缓存并重建新的缓存四、验证 YUM 源

Druid连接池实现自定义数据库密码加解密功能

《Druid连接池实现自定义数据库密码加解密功能》在现代应用开发中,数据安全是至关重要的,本文将介绍如何在​​Druid​​连接池中实现自定义的数据库密码加解密功能,有需要的小伙伴可以参考一下... 目录1. 环境准备2. 密码加密算法的选择3. 自定义 ​​DruidDataSource​​ 的密码解密3