Laravel-更新控制器与模型中的数据库

Laravel-更新控制器与模型中的数据库,laravel,laravel-4,eloquent,Laravel,Laravel 4,Eloquent,我有一个需要更新的模型,例如User。在大型应用程序中,此用户也将具有关系,更新它将不仅仅是User::find($id)->update(Input::all()) 更新应该在控制器中执行,还是应该是用户模型本身中的一种方法 我一直认为我应该把它放在模型中,因为它是特定于模型的。但我见过大多数人在控制器中执行任务。原因是什么?如模式名称中所述,控制器控制任何模型查询或更新。基于此,控制器将负责获取、更改和保存模型 如果某些操作要在多个控制器中重用,并作用于一组模型,则它们将被放入“存储库”中

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

更新应该在控制器中执行,还是应该是
用户
模型本身中的一种方法


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

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

如果某些操作要在多个控制器中重用,并作用于一组模型,则它们将被放入“存储库”中

在您的示例中,您使用的是Input::all()来补充您的模型,您肯定必须对其进行更改。必须检查和/或清除任何用户值。我还建议不要使用all,而更喜欢get或post,因此您设置了一个最小的限制

因此,我明确地让控制器负责“粘合”,拥有用于任何收集事务的存储库、用于更改对象的服务和水合器,而模型本身只用于getter和setter,在它们自己的范围内管理它们自己的数据