当使用雄辩的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的解决方案是使用存储库。(链接)