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() の呼び出し
ここで何が間違っていますか?