2015-01-06 2 views
4

어떻게 열심히로드 된 데이터 세트를 합산 할 수 있습니까?Laravel sum 웅변 수집

이 내 테이블 구조입니다 :이 내 모델/관계입니다

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 |    | 
+------------+------------------+------+-----+---------------------+----------------+ 

: -

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

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

이 무엇 반환 된 데이터의 모습입니다

class Region extends Eloquent { 

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

} 

<?php 

class Submit extends Eloquent { 

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

} 

이 내 컨트롤러 인 like (json 형식에서, 나는 웅변 컬렉션에서 $ regions를 이해한다) : -

raw json

내가 '거래'의 총합을 보낼 수있는 방법을 알아낼 수 없습니다 (4) 다시보기로?

답변

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

그건 내가 필요한 것입니다! 고맙습니다. – Lovatt