How can i sum a data set that has been eager loaded?
This is my table structure:
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 | |
+------------+------------------+------+-----+---------------------+----------------+
These are my models / relationships :-
class Region extends Eloquent {
public function submits()
{
return $this->hasMany('Submit');
}
}
<?php
class Submit extends Eloquent {
public function regions()
{
return $this->belongsTo('Region');
}
}
This is my controller
public function index()
{
$regions = Region::with('submits')->get();
return $regions;
//return View::make('pages.index', compact('regions'));
}
This is what the returned data looks like (in json format, i understand $regions in an eloquent collection):-
I can't figure out how i can send the sum total of 'deals' (4) back to the view?
$deals = $regions->sum(function ($region) {
return $region->submits->sum('deals');
});