2015-10-16 2 views
1

У меня есть 2 моделиLaravel 5,0 Elequent Группировать по теме Таблица Поле

Категория:

public function transaction() 
{ 
    return $this->hasMany('App\Transaction'); 
} 

Сделки:

public function category() 
{ 
    return $this->belongsTo('App\Category'); 
} 

И я построить таблицу содержит столбец Категория, Месяц и Total (сделка)

Контроллер:

$cats = Category::all(); 

Как результат в Вид: (в то время как с точки зрения я обхвата Еогеасп для transactions-> created_at и отформатировать его, так что он будет показывать месяц Слово вместо номера)

Sample View

Проблема в том, как сделать его месяц в группе, поэтому он не будет зацикливаться в том же месяце, то же самое произойдет с итогом, он будет группироваться; общее количество.

Спасибо

ответ

0

Поскольку это один-ко-многим (Категория имеет много сделок), если вы хотите, чтобы показать свойства транзакций в то время как итерация по категориям, вам нужно будет объединять поля в коллекции (сделки) ,

Для полного поля, которое является числом, решение прост с Laravel's sum() function of a collection, предполагая, что это то, что вы намереваетесь.

Что касается месяцев, это зависит от того, что вы хотите показать в столбце «Месяц», а затем решите, какую функцию агрегации использовать для управления созданной_такой каждой транзакции. Вы не можете добавить даты через функцию суммы, но вы можете сделать некоторые пользовательские вычисления, поэтому подумайте об использовании the reduce function of a collection.

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