0
我使用Eloquent与我的MySql数据库交谈。我有一个teams
的表,它与tasks
通过tasks_teams
有多对多的关系。 tasks
有一列叫做points
。当团队完成任务时,他们可以获得积分。雄辩多对多
我想给团队对象一个方法来返回团队赢得的总积分。此查询的SQL是这样的:
SELECT SUM(points) FROM tasks_teams, tasks WHERE
team_id = 1
AND tasks_teams.task_id = tasks.id;
这是我Team
型号:
class Team extends Illuminate\Database\Eloquent\Model {
protected $table = 'teams';
public function tasks() {
return $this->belongsToMany('Task', 'tasks_teams');
}
}
我想这个方法添加到Team
,但它不工作:
public function points() {
return $this->tasks->sum('points');
}
但我得到这个:
Fatal error: Call to undefined method Illuminate\Database\Eloquent\Collection::sum() in [...]/Models/Team.php on line 19
我在这里错了什么?