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');
我有三个表:
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');