我有3张桌子:
如何定义这些之间的关系?我试过了
public function points(){
return $this->belongsToMany('\App\Point', 'user_point');
}
但是当我做的时候
return $user->points()->sum('amount');
它只返回一个
编辑: 起初我尝试将它变成这样,因为它更有意义:
public function points(){
return $this->hasMany('\App\Point');
}
但它不起作用
答案 0 :(得分:0)
SUM
是一个聚合函数,因此 只返回一行。
$user->points
将是附加到该用户的点集合。
$user->points()
是一个您可以执行其他工作的查询(例如$user->points()->whereSomething(true)->get()
)。
答案 1 :(得分:0)
正如用户ceejayoz指出的那样,使用user->points()
将返回一个你可以做更多工作的构建器。我相信使用sum()
会查看返回的第一行,这是您所指示的实际情况。
可能,你真正想做的是$user->points->sum('amount');
这将获得整个集合的该列的总和。