谈谈 Laravel 中验证的方法

1、动作名 + 控制器名 + Request 的验证
如:CreateUserRequest.php
针对当前动作,作参数校验和权限验证,适用于应对非常复杂非常详细的验证场景。
弊端过于详细,实现烦杂,验证类文件过多,引入过多,每个动作都需要注入。

2、控制器名 + Request 的验证
如:UserRequest.php
针对当前控制器,利用请求method方法作验证,适用于很多没有参数校验和诸多不需要业务验证权限的场景。
弊端是一个控制器出现多个同样请求方法,如 get 时,则不能适用此方法。

3、控制器名 +Validate 的验证
如:UserValidate.php
适用场景和 2 号验证一致,此验证是利用路由别名 route 来解决 2 号验证弊端。
弊端是如果路由中没有路由别名及路由别名经常变更,则不适用于此号验证。

4、控制器名 + Validator 的验证
如:UserValidator.php
此验证器和 2 号、3 号相似,但又不同于他们,此验证更像服务层、公共库,集合了 123 号的特点。需要时取用。
弊端是不易理解、易破坏验证规范。

5、控制器中的验证
此处不再讨论,如人钦水,冷暖自知,相信看了上面的讨论,你也自知。

看了上面的验证说明,你或许会问,我该用哪一种验证?其实不必纠接于该使用某一种验证,可以混合使用,各有优劣,就像找男女朋友,寻找适合自己的即可。

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 3

视应用场景与规模应变就好了,没有一定哪个好的,大家根据自己项目情况来动态调整即可。

8年前 评论
幽弥狂

我还是觉得动作名+model名+Request更好玩

8年前 评论

我用的是Model+Request,add和edit的验证在一起:stuck_out_tongue_winking_eye:

8年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!