0
我想知道最好的解决方案是什么,把所有的功能放在我的模型文件中使用Eloquent Query Builder或直接放入控制器中。Laravel功能:在控制器还是在模型中?
我有一个表与捐赠: ID,USER_ID,PROJECT_ID和金额
表用户: 许多领域,但一个重要的company_id
因此,每个员工都有一个公司。但是每个员工都可以为几个项目做几笔捐款。
例如,我已将此函数放入我的CompaniesController中,以显示所选公司的员工所做的所有捐赠。 :
// Total sum of all donates of the employees
$total_sum = Donation
::join('users', 'donations.user_id', '=', 'users.id')
->where('users.company_id', $id)
->selectRaw('sum(donations.amount) as sum')
->first()
->toArray()['sum'];
它工作正常,但我不知道如何将它转换成一个雄辩的查询生成器,我尝试:
public function total_sum($company_id)
{
return $this->hasMany('App\Donation')
->join('users', 'donations.user_id', '=', 'users.id')
->where('users.company_id', $company_id)
->selectRaw('sum(donations.amount) as sum')
->first()
->toArray()['sum'];
}
但我只得到所作出的捐赠自己,而不是其他员工。
而对于记录,最好的解决方案是什么?把所有的功能放到控制器或模型中?
您可以使用存储库模式。这里有一篇不错的文章https://bosnadev.com/2015/03/07/using-repository-pattern-in-laravel-5/ –