我正在阅读很多关于 MVC 和 Laravel 的指南、教程。简单的例子,处理用户注册。他们中的大多数建议如下:
用户模型:
Attributes: id, name, email, password
用户控制器:
Method getRegister() // Show registration form
Method postRegister()
postRegister()
在方法的进一步细节UserController
- 收集用户输入
- 验证模型
- 如果失败,返回 getRegister() 并返回错误
- 如果通过,尝试注册用户(哈希密码,使用ORM将用户插入数据库)
- 如果失败,返回异常并重定向到适当的页面。
- 如果通过,则返回成功并重定向到相应的页面。
示例实现:https ://github.com/rydurham/L4withSentry
在这个实现中,模型只是被用作 ORM 的接口,仅此而已。
问题:
现在我不反对上面发布的实现,因为它展示了 Cartalyst Sentry 如何工作的一个非常好的工作示例......但是,这是注册用户的最佳/适当方式吗?
整个验证/散列/注册等...不应该在模型中执行吗?那么模型将成功或失败返回给Controller以适当地采取行动?
如果你看一下 UserController app/controllers/UserController.php
,它非常胖,而 User 模型app/models/User.php
非常瘦。
例如,用户模型是否应该没有一个registerUser()
可以执行大部分注册过程的方法?
目前,用户可以注册自己,或者管理员用户可以注册用户。因此,需要重复大量控制器代码,admin/user/register
并且login/register
如果我的想法是正确的,任何人都可以指出潜在的 Fat Model,Skinny Controller 实现的方向,以便我可以更多地了解它们是如何工作的?