Laravel - 在Controller和Model中更新DB

时间:2014-07-12 23:18:14

标签: laravel laravel-4 eloquent

我有一个我需要更新的模型,例如User。在大型应用程序中,此User也会有关系,更新它不仅仅是User::find($id)->update(Input::all())

更新是在Controller中执行还是User模型本身的方法?

我一直认为我应该把它放在模型中,因为它是特定于模型的。但我见过大多数人在控制器中执行任务。这是什么原因?

1 个答案:

答案 0 :(得分:0)

如模式名称所述,控制器控制任何模型查询或更新。基于此,控制器将负责获取,更改和保存模型。

如果要在许多控制器中重复使用某些操作,对一组模型进行操作,它们将进入“存储库”。

在您的示例中,您使用Input :: all()来润滑您的模型,您必须更改它。必须检查和/或清理任何用户值。我也建议不要使用all,而是选择get或post,所以你设置了一个最小限制。

所以,我绝对让控制器负责“粘合剂”,为任何收集物品,服务和水合物设置存储库以更改对象,模型本身仅限于吸气剂和固定剂,管理他们自己的数据自己的范围。