Heim > Datenbank > MySQL-Tutorial > Laravel-Tipp: whereHas oder whereRelation?

Laravel-Tipp: whereHas oder whereRelation?

Barbara Streisand
Freigeben: 2025-01-17 12:02:12
Original
117 Leute haben es durchsucht

Tauchen Sie ein in Laravel Eloquent: Entdecken Sie whereRelation und seine praktischen Anwendungen

Dieser Beitrag untersucht Laravel's Eloquent ORM, wobei der Schwerpunkt auf der whereRelation-Methode liegt und sie mit der älteren whereHas-Methode verglichen wird. Wir untersuchen seine Stärken und Grenzen und führen Sie zu einer optimalen Nutzung.

Szenario: Abrufen von Benutzern mit abgeschlossenen Bestellungen. Vor Laravel 8 war whereHas der Standard für die Abfrage verwandter Tabellenspalten. Laravel 8 führte whereRelation ein und bietet eine prägnantere Syntax.

Laravel Tip: whereHas or whereRelation?

Die verbesserte Syntax ist unbestreitbar sauberer!

Leistung und Einschränkungen: Ein weit verbreitetes Missverständnis ist, dass whereRelation whereHas übertrifft. Die Analyse zeigt jedoch, dass beide identische SQL-Abfragen generieren:

whereHasAbfrage:

<code class="language-sql">select * from `users` where exists 
  (
    select * from `orders` 
    where `users`.`id` = `orders`.`created_by` 
    and `status` = ? 
    and `orders`.`deleted_at` is null
  ) 
and `users`.`deleted_at` is null</code>
Nach dem Login kopieren
Nach dem Login kopieren

whereRelationAbfrage:

<code class="language-sql">select * from `users` where exists 
  (
    select * from `orders` 
    where `users`.`id` = `orders`.`created_by` 
    and `status` = ? 
    and `orders`.`deleted_at` is null
  ) 
and `users`.`deleted_at` is null</code>
Nach dem Login kopieren
Nach dem Login kopieren

Der Hauptunterschied liegt in der Funktionalität. whereRelation ist auf einzelne Bedingungen in der zugehörigen Tabelle beschränkt, während whereHas mehrere Bedingungen innerhalb einer einzelnen Unterabfrage unterstützt. whereRelation würde für jede Bedingung eine separate Unterabfrage erstellen, was sie für mehrere Kriterien ineffizient machen würde.

Laravel Tip: whereHas or whereRelation?

Die Wahl der richtigen Eloquent-Methode ist entscheidend für die Lesbarkeit und Effizienz des Codes. Berücksichtigen Sie die Komplexität Ihrer Abfrage, bevor Sie whereHas oder whereRelation auswählen. Viel Spaß beim Codieren! ?

Das obige ist der detaillierte Inhalt vonLaravel-Tipp: whereHas oder whereRelation?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage