Laravel 表单验证器的常用的2种使用方法

1、使用控制器的 validate 方法进行参数验证

场景一:前后端未分离

/*** 保存一篇新的博客文章。** @param Request $request* @return Response*/
public function store(Request $request)
{$this->validate($request, ['title' => 'required|unique:posts|max:255','body' => 'required',]);// 文章内容是符合规则的,存入数据库
}

若验证失败参考:Validation - Laravel 中文网 为 Web 工匠创造的 PHP 框架 

场景二:前后端分离


public function store(Request $request)
{try{$validatorData = $request->validate(['admin_username' => ['required', 'unique:admin_users', 'max:20'],'admin_pwd' => ['required', 'max:70'],'admin_tel' => ['required', 'unique:admin_users', 'size:11'],'auth_id' => ['required'],]);} catch (\Exception $exception){dump("exception");dump($exception->getMessage());//显示一条错误消息(and x more error)dd($exception->errors());//一个包含所有错误消息的数组}dd($validatorData);//验证通过后的数据// 文章内容是符合规则的,存入数据库
}

验证失败:

使用try{}catch(){}捕获错误消息

验证通过:

 2、手动创建验证器实例进行验证

2.1 使用默认的验证信息

use Illuminate\Support\Facades\Validator;public function store(Request $request)
{$rules = ['admin_username' => ['required', 'unique:admin_users', 'max:20'],'admin_pwd' => ['required', 'max:70'],'admin_tel' => ['required', 'unique:admin_users', 'size:11'],'auth_id' => ['required'],];$validator = Validator::make($request->all(), $rules);if ($validator->fails()) {dump($validator->attributes());//需要验证属性dump($validator->valid());//验证通过的(有效的)dump($validator->messages());//所有的错误消息dump($validator->getMessageBag());//所有的错误消息(同上)dd($validator->errors());//所有的错误消息(同上)}dd($validator);// 文章内容是符合规则的,存入数据库
}
2.2 使用自定义的验证信息

举个栗子

/*** 添加一个新的用户。** @param Request $request* @return Response*/
public function add(Request $request)
{$rules = ['admin_username' => ['required', 'unique:admin_users', 'max:20'],'admin_pwd'      => ['required', 'max:70', Password::min(6)->numbers()->letters()],'admin_tel'      => ['required', 'unique:admin_users', 'size:11'],'auth_id'        => ['required'],'admin_realname' => ['required'],];$messages = ['admin_username.required'=>':attribute 必填','admin_username.unique'=>':attribute 已存在','admin_username.max:20'=>':attribute 最多20个字符','admin_pwd.required'=>':attribute 必填','admin_pwd.max'=>':attribute 最多70个字符','admin_pwd'=>':attribute 最少6位数,且必须包含字母和数字','admin_tel.required'=>':attribute 必填','admin_tel.unique'=>':attribute 已存在','admin_tel.size'=>':attribute 必须11位数','auth_id.required'=>':attribute 必选','admin_realname.required'=>':attribute 必填',];$attributes = ['admin_username'=>"用户名",'admin_pwd'=>"密码",'admin_tel'=>"手机号",'auth_id'=>"角色",'admin_realname'=>"真实姓名",];$validator = Validator::make($request->all(), $rules, $messages, $attributes);if ($validator->fails()) {return $this->outputError(info: $validator->errors());}$data = $validator->getData();//获取验证的数据$data = $validator->valid();/获取验证通过的(有效的)数据// 文章内容是符合规则的,存入数据库
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/122302.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于神经网络结合紫外差分光谱的二氧化硫浓度定量预测

基于神经网络结合紫外差分光谱的二氧化硫浓度定量预测 前言一、代码运行1. 解压数据2. 导包3. 读取数据4. 构建网络5. 设置优化器6. 模型训练7. 可视化loss8. 模型验证 二、结果展示三、总结作者简介 前言 二氧化硫(SO2)是一种常见的环境污染物&#xff…

电梯五方对讲接口说明 Sip五方对讲使用说明

1.2/4线接线模块输出接口;接4方对讲设备:12V,2/4线接线模块供电输入 -:GND,接地 R二/四线R Li二四线L 2.RS-485接口:预留援口,可接读卡器、楼层控制器、探头,需要软件额外开发实现。 3.短路输出接口2:对应短路输入接口&#x…

【C++】DICOM医学影像工作站PACS源码

PACS即影像存档与传输系统,是医学影像、数字化图像技术、计算机技术和网络通讯技术相结合的产物,是处理各种医学影像信息的采集、存储、报告、输出、管理、查询的计算机应用程序。 PACS是基于DICOM标准的医学影像管理系统,其模块覆盖了从影像…

【USRP】产品型号、参数、架构全解析系列 6:N320 / N321

一、USRP 简介 通用软件无线电外设( USRP ) 是由 Ettus Research 及其母公司National Instruments设计和销售的一系列软件定义无线电。USRP 产品系列由Matt Ettus领导的团队开发,被研究实验室、大学和业余爱好者广泛使用。 大多数 USRP 通过以太网线连接到主机&am…

ZooKeeper基础命令和Java客户端操作

1、zkCli的常用命令操作 (1)Help (2)ls 使用 ls 命令来查看当前znode中所包含的内容 (3)ls2查看当前节点数据并能看到更新次数等数据 (4)stat查看节点状态 (5&#xf…

区块链实验室(20) - FISCO控制台连接到指定的节点

在FISCO技术文档中,控制台默认采用config.toml作为配置文件,并指定了连接的节点地址和商品,如下所示。 [network] peers["127.0.0.1:20200", "127.0.0.1:20201"] # The peer list to connect在该案例中,控…

数据结构:栈的实现

1. 栈(Stack) 1.1 栈的概念 栈(Stack)是只允许在一端进行插入或删除操作的线性表.首先栈是一种线性表,但限定这种线性表只能在某一端进行插入和删除操作.进行数据插入和删除操作的一端叫栈顶,另一端称为栈底.栈中的元素遵循后进先出LIFO(Last In First Out)的原则 压栈:栈的插…

【算法系列篇】分治-归并

文章目录 前言什么是归并算法1. 排序数组1.1 题目要求1.2 做题思路1.3 Java代码实现 2. 数组中逆序对2.1 题目要求2.2 做题思路2.3 Java代码实现 3. 计算右侧小于当前元素的个数3.1 题目要求3.2 做题思路3.3 Java代码实现 4. 翻转对4.1 题目要求4.2 做题思路4.3 Java代码实现 总…

【漏洞复现】广联达办公OAsql+文件上传+弱口令

漏洞描述 广联达办公OA是一款综合办公自动化解决方案,旨在提高组织内部的工作效率和协作能力。它提供了一系列功能和工具,帮助企业管理和处理日常办公任务、流程和文档。默认弱口令admin password,后面就不提了。 免责声明 技术文章仅供参考,任何个人和组织使用网络应当…

uni-app:实现右侧弹窗

效果&#xff1a; 代码&#xff1a; <template><view class"container"><button click"showModal true">点击按钮</button><view class"modal-overlay" v-if"showModal" click"closeModal">…

Django学习

1、启动项目 python manage.py runserversettings.py 视图函数&#xff0c;用于接收浏览器请求 Django使用的是MTV,是MVC是升级

通过nginx将https协议反向代理到http协议请求上

通过nginx将https协议反向代理到http协议请求上 1、问题背景2、介绍nginx的反向代理功能及配置https协议3、具体实现3.1 后端服务支持方式3.2 nginx重定向方式 3.3、nginx的反向代理方式4、关于nginx常用模块和指令 1、问题背景 目前一个系统仅支持https协议访问&#xff0c;因…

【Linux安装java环境】超简单,以jdk8为例

文章目录 前言详细步骤总结 前言 一些小伙伴在到手一台虚拟机后&#xff0c;发现需要配置java环境&#xff0c;看了文章后会发现超级简单&#xff0c;以下内容以安装jdk1.8为例。 详细步骤 查看是否存在java环境java -version若弹出找不到java命令&#xff0c;执行下一步。官…

linux并发服务器 —— IO多路复用(八)

半关闭、端口复用 半关闭只能实现数据单方向的传输&#xff1b;当TCP 接中A向 B 发送 FIN 请求关闭&#xff0c;另一端 B 回应ACK 之后 (A 端进入 FIN_WAIT_2 状态)&#xff0c;并没有立即发送 FIN 给 A&#xff0c;A 方处于半连接状态 (半开关)&#xff0c;此时 A 可以接收 B…

Java逻辑控制

目录 一、顺序结构 二、分支结构 1、if语句 &#xff08;1&#xff09; 语法格式1​编辑 &#xff08;2&#xff09;语法格式2​编辑 &#xff08;3&#xff09;语法格式3 2、switch 语句 三、循环结构 1、while循环 2、break 3、continue 4、for 循环 5、do whil…

实训笔记9.1

实训笔记9.1 9.1笔记一、项目开发流程一共分为七个阶段1.1 数据产生阶段1.2 数据采集存储阶段1.3 数据清洗预处理阶段1.4 数据统计分析阶段1.5 数据迁移导出阶段1.6 数据可视化阶段 二、项目的数据产生阶段三、项目的数据采集存储阶段四、项目数据清洗预处理的实现4.1 清洗预处…

MongoDB基础知识点

MongoDB基础知识点 1.MongoDB简介1.1基本信息1.2作用1.3下载 2.MongoDB安装1.Ubuntu22.042.Windows(非msi) 3.MongoDB基本操作1.基本概念2.MongoDB文件增删改查(CURD)1.插入数据2.查询数据3.修改数据4.删除数据5.删除字段 4.MongoDB实战管理系统数据库设计1.设计数据库2.Mongod…

企业架构LNMP学习笔记13

上线商城项目&#xff1a; 1&#xff09;上传项目文件到数据库&#xff1a; 入口文件位置的设计是为了让应用部署更安全&#xff0c;public目录为web可访问目录&#xff0c;其他的文件都可以放到非web访问目录下面。 nginx 默认访问index.html。没有index.html&#xff0c;就会…

宠物电商Chewy第二季度销售额28亿美元,同比增长14.3%

美国宠物电商Chewy公布2023年第二季度财报。报告显示&#xff0c;其Q2季度销售额同比增长14.3%至28亿美元&#xff0c;超出市场预期。 以下为Chewy期内业绩概要&#xff1a; 1.毛利率28.3%&#xff0c;同比增长20个基点 2.净利润有所收窄&#xff0c;同比下降15.2%至1890万美…

【深入解析spring cloud gateway】06 gateway源码简要分析

上一节做了一个很简单的示例&#xff0c;微服务通过注册到eureka上&#xff0c;然后网关通过服务发现访问到对应的微服务。本节将简单地对整个gateway请求转发过程做一个简单的分析。 一、核心流程 主要流程&#xff1a; Gateway Client向 Spring Cloud Gateway 发送请求请求…