我有一个我需要更新的模型,例如User
。在大型应用程序中,此User
也会有关系,更新它不仅仅是User::find($id)->update(Input::all())
。
更新是在Controller中执行还是User
模型本身的方法?
我一直认为我应该把它放在模型中,因为它是特定于模型的。但我见过大多数人在控制器中执行任务。这是什么原因?
答案 0 :(得分:0)
如模式名称所述,控制器控制任何模型查询或更新。基于此,控制器将负责获取,更改和保存模型。
如果要在许多控制器中重复使用某些操作,对一组模型进行操作,它们将进入“存储库”。
在您的示例中,您使用Input :: all()来润滑您的模型,您必须更改它。必须检查和/或清理任何用户值。我也建议不要使用all,而是选择get或post,所以你设置了一个最小限制。
所以,我绝对让控制器负责“粘合剂”,为任何收集物品,服务和水合物设置存储库以更改对象,模型本身仅限于吸气剂和固定剂,管理他们自己的数据自己的范围。