2017-03-03 3 views
0

Ich habe ein Modell, das 4 Beziehungen zu der gleichen Tabelle hat.Laravel 5.1 - Eager laden Beziehungen zu der gleichen Tabelle führt mehrere Abfragen

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'); 
} 

Wenn ich eifrig Last alle vier Beziehungen, die Laravel DebugBar Berichte 4 Abfragen an die admin Tabelle.

Die Methode, die ich verwenden ist:

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

Gibt es eine Möglichkeit, um die Gruppe sie zusammen nur eine Abfrage?

+1

Ich glaube, Sie haben zu machen, die stattdessen manuell in der Querybuilder verbindet. –

+0

Wo ist die Abfrage? –

+0

@SanzeebAryal Entschuldigung, ich werde die Frage bearbeiten, um das hinzuzufügen. – Ethan22

Antwort

0

Versuchen Sie, die mit Methode:

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

Das ist die Abfrage, die ich verwende. Es führt für jeden der Werte in der Methode 'with' einen separaten Aufruf der Tabelle 'admin' aus. – Ethan22

Verwandte Themen