2017-12-14 41 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; 

iはボックス関係 の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'); 
関連する問題