Php Laravel-雄辩的代码位置-控制器或模型

Php Laravel-雄辩的代码位置-控制器或模型,php,laravel,eloquent,Php,Laravel,Eloquent,当使用雄辩的orm时,我试图决定在控制器或模型中放置数据库逻辑的位置 在控制器中,我有以下方法: public function postAdd(){ $amodel=new myModel(); $amodel->name=Input::get('name'); $amodel->save(); $id=$amodel->id; } 这就是指南所说的使用它的方式,但是这种逻辑是否应该不在模型的方法中,而不是在控制器中?我知道上面的内容仍然提供了数据库的抽象,但我不确定的是它

当使用雄辩的orm时,我试图决定在控制器或模型中放置数据库逻辑的位置

在控制器中,我有以下方法:

public function postAdd(){
$amodel=new myModel();
$amodel->name=Input::get('name');
$amodel->save();
$id=$amodel->id;
}
这就是指南所说的使用它的方式,但是这种逻辑是否应该不在模型的方法中,而不是在控制器中?我知道上面的内容仍然提供了数据库的抽象,但我不确定的是它的可重用性如何。。。或许情况并非如此

因此,这样做是否更好:

public function postAdd(){
$amodel=new myModel();
$id = $amodel->addPost(Input::get('name'));
}
因此,我将信息传递给模型上的一个方法,该方法进行工作。这允许重用它,并且在需要时更改模型方法,而无需更新多行代码


答案可能只是“是的,按照你的建议去做”,在这种情况下很好,但我对使用这样的ORM时的标准实践感兴趣。

控制器的唯一责任是处理UI请求并将其委托给模型。这就是为什么它应该是瘦的。它应该只包含它所负责的内容所必需的代码。因此,这就是为什么您应该将代码移动到模型中,或者,在这种情况下,更好、更像Laravel的解决方案是使用存储库。()

请仔细阅读“组件交互”部分