2016-12-27 129 views
0

我有三個表:laravel5.3關係(集合)

users 
    -id 
    -name 
    -... 

addresses 
    -id 
    -user_id 
    -... 

transactions 
    -id 
    -address_id 
    -amount 

我的模式是這樣的:

用戶模型:

public function addresses() 
{ 
return $this->hasMany('App\Address'); 
} 

地址模型:

public function user() 
{ 
return $this->belongsTo('App\User'); 
} 

public function transactions() 
{ 
return $this->hasMany('App\Transaction'); 
} 

交易模式:

public function address() 
{ 
return $this->belongsTo('App\Address'); 
} 

現在我想爲某個用戶的所有交易的總和。 使用雄辯來歸檔這個文件的最好方法是什麼?

dd($forwarded_total->sum('addresses.transactions.amount')); 

返回0,所有的時間。

回答

2

可以在User模型創建hasManyThrough關係來獲取所有相關的交易爲:

public function transactions() 
{ 
    return $this->hasManyThrough('App\Transaction', 'App\Address'); 
} 

然後你就可以查詢它:

$total_sum = User::find(1)->transactions->sum('amount'); 
+0

真棒,這非常感謝! – wichtel