laravel5.3 关系(集合)

laravel5.3 relationships (collections)

我有三个表:

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');
}

现在我想要某个用户的所有交易的总和。 使用 eloquent 存档的最佳方式是什么?

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

returns 一直都是 0。

您可以在 User 模型中创建一个 hasManyThrough 关系来获取所有相关交易:

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

那么你可以这样查询:

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