Wherehas filtert in Laravel die Abfrageergebnisse des Modells basierend auf der Assoziationsbeziehung und ermöglicht das Hinzufügen von Filterbedingungen für dieses Modell. Es wird häufig zum Filtern von Daten über die Slave-Tabelle in der Master-Tabelle verwendet. User::whereHas('Slave table ', function($...){$...->where(filtercondition);})->get()".
Die Betriebsumgebung dieses Artikels: Windows 10-System, Laravel Version 6, Dell G3-Computer.
with()
with() in Laravel wird zum „eifrigen Laden“ verwendet, was hauptsächlich bedeutet, dass Laravel die genaue Beziehung zum Hauptmodell vorab lädt. Dies ist sehr hilfreich, wenn Sie alle Beziehungen in einem Modell hinzufügen möchten. Da „eifriges Laden“ das 1+N-Abfrageproblem lindert, sind nur 1+1 Abfragen erforderlich, um das Problem zu lösen, was die Abfragegeschwindigkeit erheblich verbessert.
Zum Beispiel: Die Methode
user > hasMany > post
$users = User::with('posts')->get(); foreach($users as $user){ $users->posts; // posts已经被加载了,没有增加DB查询 }
has()
has() filtert die Abfrageergebnisse des Modells basierend auf der Assoziationsbeziehung, daher ist ihre Funktion sehr ähnlich die Where-Bedingung. Wenn Sie nur has('post') verwenden, bedeutet dies, dass Sie nur dieses Modell erhalten möchten, das mindestens eine Post-Zuordnung hat.
Zum Beispiel:
user > post
//User至少有一条post的关联关系 $users = User::has('post')->get();
Sie können auch „.“ verwenden, um verschachtelte has-Anweisungen zu erstellen.
Zum Beispiel:
Benutzer > dieses Modell.
Zum Beispiel:
Benutzer >Das obige ist der detaillierte Inhalt vonWofür wird Wherehas in Laravel verwendet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!