新闻中心
Lar*el如何处理表单验证?(Requests代码示例)
Lar*el 推荐使用 Form Request 封装表单验证逻辑,通过 php artisan make:request 生成请求类,在 rules() 中定义规则(如 title.required、content.min),支持 messages() 自定义提示、authorize() 控制权限,并在控制器中类型提示自动验证。

在 Lar*el 中,表单验证推荐使用 Form Request(自定义请求类)来封装验证逻辑,它让控制器更干净、验证更复用、错误响应更统一。
创建 Form Request 类
运行 Artisan 命令生成一个专门处理表单验证的请求类:
php artisan make:request StorePostRequest该命令会在 app/Http/Requests 目录下生成一个 PHP 类,Lar*el 会自动为你填充基础结构。
定义验证规则(r
ules() 方法)
打开刚生成的 StorePostRequest.php,在 rules() 方法中写入字段规则。例如提交文章时验证标题和内容:
public function rules()
{
return [
'title' => ['required', 'string', 'max:255'],
'content' => ['required', 'string', 'min:10'],
'category_id' => ['nullable', 'exists:categories,id'],
];
}
注意:exists:categories,id 表示该值必须存在于 categories 表的 id 字段中;nullable 允许为空但不校验其他规则。
可选:添加自定义错误消息和验证前钩子
你可以在同一请求类中补充:
Gaga
曹越团队开发的AI视频生成工具
1151
查看详情
-
messages():返回自定义错误提示(键名格式为"字段名.规则名") -
withValidator():在验证执行后、抛出异常前对 Validator 实例做扩展(比如动态添加规则) -
authorize():控制是否允许当前用户发起该请求(返回true或false)
示例:
public function authorize()
{
return auth()->check(); // 仅登录用户可提交
}
public function messages()
{
return [
'title.required' => '标题不能为空',
'content.min' => '内容至少需要 :min 个字符',
];
}
在控制器中使用
直接将请求类类型提示到控制器方法参数中,Lar*el 会自动执行验证。验证失败时自动重定向并返回错误(Web)或返回 422 JSON 响应(API):
use App\Http\Requests\StorePostRequest;
public function store(StorePostRequest $request)
{
$validated = $request->validated(); // 获取已验证的数据(自动过滤未声明字段)
Post::create($validated);
return redirect()->route('posts.index')->with('success', '文章已发布');
}
无需手动调用 $request->validate(...),所有逻辑已解耦到请求类中。
基本上就这些 —— Form Request 是 Lar*el 推荐的标准做法,既清晰又易维护,尤其适合中大型项目中的表单场景。
以上就是Lar*el如何处理表单验证?(Requests代码示例)的详细内容,更多请关注php中文网其它相关文章!
# 如何将
# seo 相同的程序
# 赵县网站制作推广
# seo快速排名软件销售
# 广元营销推广咨询招聘
# 暖通营销推广渠道有哪些
# 巴中网站建设优势
# 布吉网站建设找哪家好
# 专业seo外包服务
# seo推广选十九金手指
# 网络关键词排名询问n火17星
# 为空
# 如何实现
# 文件管理
# php
# 绑定
# 推荐使用
# 如何处理
# 多语言
# 自定义
# 表单
# red
# app
# go
# json
# js
# laravel
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
必由学官网快捷入口 必由学网页版在线学习平台
如何将一个大型PHP应用拆分为多个Composer包_微服务与模块化架构的Composer实践
J*aScript map 迭代中检测空数组元素的有效方法
Go语言中Map存储的结构体如何调用指针方法:深入解析与实践
曝R星经典之作开发图 设计简陋但信息密集!
win11开机启动修复循环怎么办 Win11无法进入系统高级启动解决方法【修复】
192.168.1.1管理中心入口 192.168.1.1路由器网页设置平台
PowerPoint如何制作滚动字幕结尾彩蛋_PowerPoint路径动画实现平滑滚动字幕效果
MAC如何安全彻底地删除文件_MAC使用终端命令确保文件无法被恢复
Go语言中高效处理x-www-form-urlencoded表单数据
抖音未来赚钱的新趋势 2025年值得关注的变现风口分析
cad如何更改注释性对象的比例_cad注释性比例调整方法
优化Django表单:提交验证失败后保留用户输入
痛风发作了怎么办? 快速止痛和后期饮食调理
漫蛙漫画官方主页入口 漫蛙MANWA网页直达访问链接
腾讯QQ邮箱登录入口_QQ邮箱官方网站使用地址
手机CPU怎么影响游戏体验_手机CPU对游戏性能的影响分析
Python getattr() 异常处理深度解析:避免程序意外退出
学习通网页版快速入口 学习通官网网页版直接打开
从J*aScript对象中精确提取指定属性的教程
如何在J*a中使用Locale处理多语言环境
在J*a中如何使用Exception包装底层异常_异常包装与信息传递方法说明
Lar*el的路由模型绑定怎么用_Lar*el Route Model Binding简化控制器逻辑
J*a里如何使用forEach遍历Map_Map遍历方法说明
解决macOS Tkinter应用双击启动崩溃:PyInstaller打包指南
知音漫客正版漫画平台_知音漫客官网账号登录
邮政快递单号查询入口 邮政快递物流信息在线查询入口
在J*a里如何理解依赖关系的方向_依赖方向在模块结构中的作用
J*aScript中针对特定容器内图片动画的实现教程
怎么去除衣服上的口红印_生活小妙招教你用酒精轻松擦除
机构:以往存储涨价周期小米利润率实际上有所改善 能转嫁给消费者等
拷贝漫画电脑版官网入口 拷贝漫画(PC版)在线直达
小猿搜题在线学习页面在哪_小猿搜题在线学习中心入口
qq邮箱发邮件给国外发不出去_QQ邮箱国际邮件发送失败原因与解决
Win11 USB传输速度慢怎么解决 Win11 USB驱动更新与设置
TypeScript/J*aScript:高效查找数组中首个唯一ID对象
QQ邮箱电脑版登录入口_QQ邮箱官方网站登录平台
夸克浏览器网页版最新地址 夸克浏览器官方入口合集
抖音网页版平台入口 抖音网页版官网在线访问教程
CSS Grid如何控制元素对齐_align-items与justify-items组合使用
Lar*el如何生成PDF或Excel文件_Lar*el文档导出工具与使用教程
sublime如何处理大型CSV文件的列对齐_sublime高级表格编辑插件指南
神庙逃亡小游戏在线玩 神庙逃亡小游戏入口
学习通在线学习平台 学习通网页版直接进入课程中心
圆通快递查询实时追踪 圆通物流包裹状态快速查看
汽水音乐车机版横屏版7.1 汽水音乐车机版横屏版下载入口
PDF文件体积过大处理_PDF压缩技巧详解
TikTok搜索不到用户发布内容怎么办 TikTok用户内容搜索优化方法
铁路12306的积分有效期是多久_铁路12306积分有效期说明
初次安装JDK时环境变量如何正确配置_J*A_HOME与PATH设置规则讲解


2025-12-16
浏览次数:次
返回列表
ules() 方法)