新闻中心

Lar*el如何处理表单验证?(Requests代码示例)

2025-12-16
浏览次数:
返回列表
Lar*el 推荐使用 Form Request 封装表单验证逻辑,通过 php artisan make:request 生成请求类,在 rules() 中定义规则(如 title.required、content.min),支持 messages() 自定义提示、authorize() 控制权限,并在控制器中类型提示自动验证。

laravel如何处理表单验证?(requests代码示例)

在 Lar*el 中,表单验证推荐使用 Form Request(自定义请求类)来封装验证逻辑,它让控制器更干净、验证更复用、错误响应更统一。

创建 Form Request 类

运行 Artisan 命令生成一个专门处理表单验证的请求类:

php artisan make:request StorePostRequest

该命令会在 app/Http/Requests 目录下生成一个 PHP 类,Lar*el 会自动为你填充基础结构。

定义验证规则(rules() 方法)

打开刚生成的 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 Gaga

曹越团队开发的AI视频生成工具

Gaga 1151 查看详情 Gaga
  • messages():返回自定义错误提示(键名格式为 "字段名.规则名"
  • withValidator():在验证执行后、抛出异常前对 Validator 实例做扩展(比如动态添加规则)
  • authorize():控制是否允许当前用户发起该请求(返回 truefalse

示例:

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设置规则讲解 

搜索