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

相关文章

C#中通过Response.Headers设置自定义参数的代码示例

《C#中通过Response.Headers设置自定义参数的代码示例》:本文主要介绍C#中通过Response.Headers设置自定义响应头的方法,涵盖基础添加、安全校验、生产实践及调试技巧,强... 目录一、基础设置方法1. 直接添加自定义头2. 批量设置模式二、高级配置技巧1. 安全校验机制2. 类型

SpringBoot AspectJ切面配合自定义注解实现权限校验的示例详解

《SpringBootAspectJ切面配合自定义注解实现权限校验的示例详解》本文章介绍了如何通过创建自定义的权限校验注解,配合AspectJ切面拦截注解实现权限校验,本文结合实例代码给大家介绍的非... 目录1. 创建权限校验注解2. 创建ASPectJ切面拦截注解校验权限3. 用法示例A. 参考文章本文

Vite 打包目录结构自定义配置小结

《Vite打包目录结构自定义配置小结》在Vite工程开发中,默认打包后的dist目录资源常集中在asset目录下,不利于资源管理,本文基于Rollup配置原理,本文就来介绍一下通过Vite配置自定义... 目录一、实现原理二、具体配置步骤1. 基础配置文件2. 配置说明(1)js 资源分离(2)非 JS 资

深度解析Java @Serial 注解及常见错误案例

《深度解析Java@Serial注解及常见错误案例》Java14引入@Serial注解,用于编译时校验序列化成员,替代传统方式解决运行时错误,适用于Serializable类的方法/字段,需注意签... 目录Java @Serial 注解深度解析1. 注解本质2. 核心作用(1) 主要用途(2) 适用位置3

Debian 13升级后网络转发等功能异常怎么办? 并非错误而是管理机制变更

《Debian13升级后网络转发等功能异常怎么办?并非错误而是管理机制变更》很多朋友反馈,更新到Debian13后网络转发等功能异常,这并非BUG而是Debian13Trixie调整... 日前 Debian 13 Trixie 发布后已经有众多网友升级到新版本,只不过升级后发现某些功能存在异常,例如网络转

SpringBoot3匹配Mybatis3的错误与解决方案

《SpringBoot3匹配Mybatis3的错误与解决方案》文章指出SpringBoot3与MyBatis3兼容性问题,因未更新MyBatis-Plus依赖至SpringBoot3专用坐标,导致类冲... 目录SpringBoot3匹配MyBATis3的错误与解决mybatis在SpringBoot3如果

聊聊springboot中如何自定义消息转换器

《聊聊springboot中如何自定义消息转换器》SpringBoot通过HttpMessageConverter处理HTTP数据转换,支持多种媒体类型,接下来通过本文给大家介绍springboot中... 目录核心接口springboot默认提供的转换器如何自定义消息转换器Spring Boot 中的消息

Python自定义异常的全面指南(入门到实践)

《Python自定义异常的全面指南(入门到实践)》想象你正在开发一个银行系统,用户转账时余额不足,如果直接抛出ValueError,调用方很难区分是金额格式错误还是余额不足,这正是Python自定义异... 目录引言:为什么需要自定义异常一、异常基础:先搞懂python的异常体系1.1 异常是什么?1.2

nginx配置错误日志的实现步骤

《nginx配置错误日志的实现步骤》配置nginx代理过程中,如果出现错误,需要看日志,可以把nginx日志配置出来,以便快速定位日志问题,下面就来介绍一下nginx配置错误日志的实现步骤,感兴趣的可... 目录前言nginx配置错误日志总结前言在配置nginx代理过程中,如果出现错误,需要看日志,可以把

Linux中的自定义协议+序列反序列化用法

《Linux中的自定义协议+序列反序列化用法》文章探讨网络程序在应用层的实现,涉及TCP协议的数据传输机制、结构化数据的序列化与反序列化方法,以及通过JSON和自定义协议构建网络计算器的思路,强调分层... 目录一,再次理解协议二,序列化和反序列化三,实现网络计算器3.1 日志文件3.2Socket.hpp