2017-03-03 9 views
0

同じテーブルに対して4つのリレーションシップを持つモデルがあります。Laravel 5.1 - 同じテーブルへの読み込み関係が複数のクエリを実行する

public function driver() 
{ 
    return $this->belongsTo(Admin::class); 
} 

public function rejectedBy() 
{ 
    return $this->belongsTo(Admin::class, 'rejected_by'); 
} 

public function reconciledBy() 
{ 
    return $this->belongsTo(Admin::class, 'reconciled_by'); 
} 

public function updatedBy() 
{ 
    return $this->belongsTo(Admin::class, 'updated_by'); 
} 

I熱心な負荷のすべての4人の関係、Laravelのdebugbarはadminテーブルに4つのクエリを報告したとき。

私が使用する方法は次のとおりです。

$report = Report::find(1) 
      ->with('driver', 'rejectedBy', 'reconciledBy', 'updatedBy') 
      ->get(); 

は、唯一のクエリにグループ一緒に方法はありますか?

+1

私はあなたの代わりにquerybuilderに手動で合流させるためにあると思います。 –

+0

クエリはどこですか? –

+0

@SanzeebAryal申し訳ありませんが、質問を編集して追加します。 – Ethan22

答えて

0

は方法で試してみてください。

$adm = App\Admin::with('driver', 'rejectedBy', 'reconciledBy', 'updatedBy')->get(); 
+0

これは私が使用しているクエリです。 'with'メソッドの各値に対して' admin'テーブルを別々に呼び出します。 – Ethan22

関連する問題