2014-12-15 11 views
0

나는 "그리드"라는 테이블을 가지고 있습니다. 열은 id, floor 및 grid입니다.Laravel Eloquent Group 결과 배열

id     floor   grid 
==========   =======  ======= 
1      EG   LEFT 
2      EG   RIGHT 
3      DG   LEFT 
4      DG   RIGHT 

내가 가진 내 모든 데이터를 얻을 때 :

$data = Grid::all() 

나는이 0 => 그리드 개체 1, 1 => 그리드 개체 2, 등등 ..와 배열

사전

,536에서

$data = array(
     'EG' => array(
      'LEFT' => Grid Object 1, 
      'RIGHT' => Grid Object 2, 
     ) 
     'DG' => array(
      'LEFT' => Grid Object 3, 
      'RIGHT' => Grid Object 4, 
     ) 
    ) 

감사 :하지만 어떻게 그룹에이 같은 배열 내 결과이 가능하다

답변

0

수동으로해야 할 것 같습니다. 현재 Laravel 버전으로 새로운 구조

$result = array(); 
foreach($data as $d){ 
    if(!isset($result[$d->floor])){ 
     $result[$d->floor] = array(); 
    } 
    $result[$d->floor][$d->grid] = $d; 
} 
+0

괜찮 감사를 줄 것이다 GROUPBY 기능

$data = $data->groupBy('floor'); 

를 사용할 수 있습니다. 나는 그것을 두려워했다. 나는 이것에 대해 laravel eloquent function이있을 것이라고 생각했다 ... – goldlife

+0

내가 아는 한 멀지 않았다. 그러나 당신 자신이 할 일이 "나쁜"것이 아닙니다.;) – lukasgeiter

+0

대답 해 주셔서 감사합니다! :) – goldlife

0

을 컬렉션을 통해 루프를 의미하고 구축, 당신은 원하는 배열 당신에게