我正在使用 Eloquent 与我的 MySql 数据库通信。我有一张与viateams
有多对多关系的表。有一个名为 的列。当团队完成任务时,他们会获得积分。tasks
tasks_teams
tasks
points
我想给 Team 对象一个方法来返回该团队获得的总积分。这个查询的 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');
}
但我明白了:
致命错误:在第 19 行的 [...]/Models/Team.php 中调用未定义的方法 Illuminate\Database\Eloquent\Collection::sum()
我在这里做错了什么?