2017-12-14 22 views
0

이 내 웅변 쿼리laravel 5.5에서 eager loading의 편평한 배열을 얻는 방법?

$data = Disciplines::where('type', '<>', 'Initiator') 
       ->with(['discipline_boxes.assign.box' => function($query) { 
         $query->select('id'); 
       }]) 
       ->get(); 

    return $data; 

난 상자 관계 의 ID 년대의 배열을 반환합니다 예컨대 : [2,3,4,5]

+0

하지 않습니다 "-> toArray()" 작업? – Amarnasan

+0

모두 문서에 있습니다. https://laravel.com/docs/5.5/eloquent-relationships#eager-loading –

+0

이러한 모든 관계에 대한 역수를 정의 했습니까? – lagbox

답변

0

해결! 이 광고는 저에게 효과적입니다.

$disciplines = new Disciplines(); 
      $results = $disciplines->getAllBox_ID()->toArray(); 
      dd(array_flatten(array_pluck($results,'discipline_boxes.*.assign.box.id'))); 
0

는 관계의 체인 역이 잠재적 경우는 (여기에 이름 가정을 만드는)을 Box 끝에서이 정보를 얻을 수 :

Box::whereHas('assign.discipline_box.discipline', function ($q) { 
    $q->where('type', '<>', 'Initiator'); 
})->pluck('id');