Как сгруппировать и суммировать столбец сводной таблицы в отношениях Eloquent?

В Ларавеле 4; У меня есть модельProject а такжеPart, они имеют отношение многие ко многим с помощью сводной таблицыproject_part, Сводная таблица имеет столбецcount который содержит номер идентификатора детали, используемого в проекте, например:

id  project_id  part_id count
24  6           230     3

Здесьproject_id 6, использует 3 штукиpart_id 230.

Одна часть может быть указана несколько раз для одного и того же проекта, например:

id  project_id  part_id count
24  6           230     3
92  6           230     1

Когда я показываю список деталей для моего проекта, я не хочу показыватьpart_id дважды, поэтому я группирую результаты.

мойпроектов Модель имеет это:

public function parts()
{
    return $this->belongsToMany('Part', 'project_part', 'project_id', 'part_id')
         ->withPivot('count')
         ->withTimestamps()
         ->groupBy('pivot_part_id')
}

Но, конечно, мойcount значение не является правильным, и вот моя проблема:Как получить сумму всех сгруппированных частей для проекта?

Это означает, что мой список запчастей дляproject_id 6 должно выглядеть так:

part_id count
230     4

Я бы очень хотел иметь его вProjects-Parts отношения, поэтому я могу загрузить его.

Я не могу обернуть голову, как это сделать, не получив проблемы N + 1, любая оценка приветствуется.

Обновить: В качестве временного решения я создал метод презентатора, чтобы получить общее количество деталей в проекте. Но это дает мне проблему N + 1.

public function sumPart($project_id)
{
    $parts = DB::table('project_part')
        ->where('project_id', $project_id)
        ->where('part_id', $this->id)
        ->sum('count');

    return $parts;
}

Ответы на вопрос(1)

Ваш ответ на вопрос