上一篇
📚 Laravel表单验证与数据请求全攻略(2025最新版) 🚀
📌 基础操作
Laravel的Request
类自带validate()
方法,直接在控制器里开怼:
public function store(Request $request) { $validated = $request->validate([ 'title' => 'required|unique:posts|max:255', 'body' => 'required', ], [ 'title.required' => '标题不能为空哦~😉', ]); // 验证通过,继续搞事情... }
💡 高级技巧
AppServiceProvider
里用Validator::extend()
扩展,比如验证手机号: Validator::extend('phone', function ($attribute, $value, $parameters, $validator) { return preg_match('/^1[3-9]\d{9}$/', $value); });
sometimes
有条件地加规则,如果选了中国,身份证必填”: $validator->sometimes('id_card', 'required', function ($input) { return $input->country === 'China'; });
🔥 Form Request类
把验证逻辑抽离到专用类,保持控制器干净:
php artisan make:request StorePostRequest
// app/Http/Requests/StorePostRequest.php public function rules() { return [ 'title' => 'required|max:100', 'content' => 'required', ]; } // 控制器直接注入 public function store(StorePostRequest $request) { $post = Post::create($request->validated()); }
🚨 空字段处理
nullable
规则允许字段为空, 'email' => 'nullable|email',
default
规则给空字段赋默认值: 'views' => 'nullable|integer|default:0',
🤔 什么是_None?
Laravel官方没有_None
规则,但可能是以下场景的自定义用法:
false
跳过验证, Validator::extend('custom_rule', function ($attribute, $value) { return $value === 'none' ? false : true; });
required_without
实现“如果其他字段为空,则必填”: 'phone' => 'required_without:email',
⚠️ 注意事项
exists:none
可能被误读为检查none
表。 php artisan test
确保自定义规则不翻车。 validate()
、Form Request、自定义规则。 nullable
+default
组合拳。 🔗 参考:
💬 有问题?评论区见!👇
本文由 业务大全 于2025-08-25发表在【云服务器提供商】,文中图片由(业务大全)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vds.7tqx.com/wenda/729658.html
发表评论