Heim >PHP-Framework >Laravel >So verwenden Sie die with-Methode in Laravel

So verwenden Sie die with-Methode in Laravel

WBOY
WBOYOriginal
2022-01-13 16:48:578326Durchsuche

In Laravel wird die with()-Methode als „Eager Loading“ verwendet, was bedeutet, dass Laravel die genaue Beziehung zusammen mit dem Hauptmodell vorab lädt. Die Verwendung dieser Methode kann das „1+N“-Abfrageproblem lindern „1+1“-Abfragen zur Lösung des Problems.

So verwenden Sie die with-Methode in Laravel

Die Betriebsumgebung dieses Artikels: Windows 10-System, Laravel Version 6, Dell G3-Computer.

So verwenden Sie die with-Methode in Laravel

with()

with()-Methode wird zum „Durst Loading“ verwendet, was hauptsächlich bedeutet, dass Laravel mit der genauen Beziehung des Hauptmodells vorgeladen wird. 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:

user > hasMany > post
$users = User::with('posts')->get();
foreach($users as $user){
   $users->posts; // posts已经被加载了,没有增加DB查询
}

Erweiterung:

has()

has() Methode dient zum Filtern der Abfrageergebnisse des Modells basierend auf der Assoziationsbeziehung, daher ist ihre Funktion der Where-Bedingung sehr ähnlich. 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 > hasMany > post
//User至少有一条post的关联关系
$users = User::has('post')->get();

Sie können auch „.“ verwenden, um verschachtelte has-Anweisungen zu erstellen.

Zum Beispiel:

user > hasMany > post
$user = User::has('post.votes', '>', '3')->get();

Verwandte Empfehlungen: Die neuesten fünf Laravel-Video-Tutorials

Das obige ist der detaillierte Inhalt vonSo verwenden Sie die with-Methode in Laravel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn