Laravel - Eloquent Code位置 - 控制器或模型

时间:2014-04-29 08:51:39

标签: php laravel eloquent

我正在尝试在使用雄辩的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时的标准做法感兴趣。

1 个答案:

答案 0 :(得分:1)

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