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/ –