2014-11-08 6 views
0

У меня есть проблема, я не знаю, как решить,Laravel группа по belongsto

Я следующие таблицы

OrderContents
ID
item_id
общий

Пункт
ID
category_id

Категория
ID
group_id

Группа ID

С следующими соотношениями

orderContent->item() 
item->caregory() 
category->group() 

Что мне нужно, чтобы получить в общей сложности, но grouped by товаров, категория и группа, так что я имею значение Total суммированного эти 3 моделей

Я знаю, как достичь первого один

$ всего = OrderContent :: все ([DB :: сырец ('SUM (всего) как итоговые данные))>> groupBy (' item_id ')

А как же другие?

ответ

2

Вы хотите использовать присоединяется -

http://laravel.com/docs/4.2/queries#joins

$total = OrderContent::join('items', 'items.id, '=', 'order_contents.item_id') 
       ->join('categories', 'items.category_id', '=', 'categories.id') 
       ->select([DB::raw('SUM(total) as total')]) 
       ->groupBy('categories.id'); 

Надеется, что либо делает то, что вы хотите или очки вы в правильном direciton!

+0

Спасибо! Это действительно поможет мне :) Я пытался сделать это с помощью eqger loadongs, и мне не повезло. Я попробую это, но это определенно имеет смысл –

Смежные вопросы