Lar*el如何处理表单验证?(Requests代码示例)
发布时间:2025-12-16 17:24
发布者:网络
浏览次数: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中文网其它相关文章!
# php
# laravel
# js
# json
# go
# app
# red
# 表单
# 自定义
# 多语言
# 如何处理
# 推荐使用
# 绑定
# 如何将
# 文件管理
# 如何实现
# 为空
# 网络关键词排名询问n火17星
# seo推广选十九金手指
# 专业seo外包服务
# 布吉网站建设找哪家好
# 巴中网站建设优势
# 暖通营销推广渠道有哪些
# 广元营销推广咨询招聘
# seo快速排名软件销售
# 赵县网站制作推广
# seo 相同的程序





ules() 方法)