2015-01-06 7 views
4

Как я могу суммировать набор данных, который был загружен?Laravel sum eloquent collection

Это моя структура таблицы:

regions table 
+------------+------------------+------+-----+---------------------+----------------+ 
| Field  | Type    | Null | Key | Default    | Extra   | 
+------------+------------------+------+-----+---------------------+----------------+ 
| id   | int(10) unsigned | NO | PRI | NULL    | auto_increment | 
| region  | varchar(255)  | NO |  | NULL    |    | 
| created_at | timestamp  | NO |  | 0000-00-00 00:00:00 |    | 
| updated_at | timestamp  | NO |  | 0000-00-00 00:00:00 |    | 
+------------+------------------+------+-----+---------------------+----------------+ 

submits table 
+------------+------------------+------+-----+---------------------+----------------+ 
| Field  | Type    | Null | Key | Default    | Extra   | 
+------------+------------------+------+-----+---------------------+----------------+ 
| id   | int(10) unsigned | NO | PRI | NULL    | auto_increment | 
| region_id | int(11)   | NO |  | NULL    |    | 
| deals  | int(11)   | NO |  | NULL    |    | 
| created_at | timestamp  | NO |  | 0000-00-00 00:00:00 |    | 
| updated_at | timestamp  | NO |  | 0000-00-00 00:00:00 |    | 
+------------+------------------+------+-----+---------------------+----------------+ 

Это мои модели/отношения: -

class Region extends Eloquent { 

    public function submits() 
    { 
    return $this->hasMany('Submit'); 
    } 

} 

<?php 

class Submit extends Eloquent { 

    public function regions() 
    { 
    return $this->belongsTo('Region'); 
    } 

} 

Это мой контроллер

public function index() 
    { 
    $regions = Region::with('submits')->get(); 

    return $regions; 
    //return View::make('pages.index', compact('regions')); 
    } 

Это то, что возвращаемые внешний вид данных (в формате json, я понимаю $ регионы в красноречивой коллекции): -

raw json

Я не могу понять, как я могу отправить всю сумму «сделки» (4) вернуться к просмотру?

ответ

6
$deals = $regions->sum(function ($region) { 
    return $region->submits->sum('deals'); 
}); 
+0

Это то, что мне нужно! Спасибо. – Lovatt

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

  • Нет связанных вопросов^_^