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.hqwc.cn/news/95910.html

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

相关文章

Postgresql JSON对象和数组查询

文章目录 一. Postgresql 9.5以下版本1.1 简单查询(缺陷:数组必须指定下标,不推荐)1.1.1 模糊查询1.1.2 等值匹配1.1.3 时间搜索1.1.4 在列表1.1.5 包含 1.2 多层级JSONArray(推荐)1.2.1 模糊查询1.2.2 模糊查询 NOT1.2.3 等值匹配…

OpenCV(八):图像二值化

目录 1.固定值二值化 2.自适应阈值二值化 3.Android JNI完整代码 1.固定值二值化 固定阈值二值化是OpenCV中一种简单而常用的图像处理技术,用于将图像转换为二值图像。在固定阈值二值化中,像素值根据一个预定义的阈值进行分类,大于阈值的…

c# 本地化中英文切换

区域 线程默认区域为当前计算机所选区域 设置当前区域: Thread.CurrentThread.CurrentCulture new CultureInfo(“zh-cn”); 获取当前区域: Console.WriteLine(Thread.CurrentThread.CurrentCulture.ToString()); 区域名称: “zh-cn” 中文…

解决 .csv 文件上传到 pgsql 的字符报错问题

目录 背景问题解决办法 背景 上传 .csv 文件进行数据导入到 pg 时,报错显示如下: ods.tbl_inp_fee_detail.csv数据上传失败 报错信息:org.postgresql.util.PSQLException: ERROR: invalid byte sequence for encoding "UTF8": 0x00 Where: C…

「黄钊的AI日报·第一季」免费试读!最后5天,早鸟价60元~

1、每天5条AI内容点:不是常见的新闻汇总模式,而是站在AI产品经理的视角,把每篇AI干货的最核心内容,直接拎出来、甚至用自己的话来描述,是在展示“what I see”,和原文已经不是一个东西了! 2、已…

独家首发!openEuler 主线集成 LuaJIT RISC-V JIT 技术

RISC-V SIG 预期随主线发布的 openEuler 23.09 创新版本会集成 LuaJIT RISC-V 支持。本次发版将提供带有完整 LuaJIT 支持的 RISC-V 环境并带有相关软件如 openResty 等软件的支持。 随着 RISC-V SIG 主线推动工作的进展,LuaJIT 和相关软件在 RISC-V 架构下的支持也…

C# 试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)

C# 在调用Cdll时,可能会出现 :试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)这个错误。 一般情况下是C#目标平台跟Cdll不兼容,64位跟32位兼容性问题, a.客户端调用Cdll报的错则, 1)允许的话把C#客户端…

数据结构 -作用及基本概念

为什么要使用数据结构 学习数据结构是计算机科学和软件工程领域中非常重要的一门课程。以下是学习数据结构的几个重要原因: 组织和管理数据:数据结构提供了一种组织和管理数据的方式。通过学习不同的数据结构,你可以了解如何有效地存储和操作…

[dasctf]misc3 chrchrchr.pcapng

webshell 流量分析 php代码部分没啥看的,主要在标黄的部分,裁剪掉前面的字符可base解码 能看到在向a.txt中写入数据 wp # tshark.exe -r chrchrchr.pcapng -T fields -e urlencoded-form.value -Y "urlencoded-form.keyzd2ebbfb26dd" >…

xss前十二关靶场练习

目录 一、xss原理和分类 1.原理 2.分类:xss分为存储型和反射型以及dom型 (1)反射性 (2)存储型 (3)dom型 二、靶场关卡练习​编辑 1.第一关 2.第二关 3.第三关 4.第四关 5.第五关 6…

Rn实现省市区三级联动

省市区三级联动选择是个很频繁的需求,但是查看了市面上很多插件不是太老不维护就是不满足需求,就试着实现一个 这个功能无任何依赖插件 功能略简单,但能实现需求 核心代码也尽力控制在了60行左右 pca-code.json树型数据来源 Administrative-d…

【高效编程技巧】编程菜鸟和编程大佬的差距究竟在哪里?

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《高效编程技巧》《C语言进阶》 ⛺️生活的理想,就是为了理想的生活! 文章目录 📋 前言1.如何写出好的代码?1.2 如何分析一个函数写的怎么样 2. 代码板式的重要性2.1 代码…