Heim > Datenbank > MySQL-Tutorial > Wie kann man Variablen effizient an die „whereExists'-Unterabfragen von Laravel übergeben?

Wie kann man Variablen effizient an die „whereExists'-Unterabfragen von Laravel übergeben?

Barbara Streisand
Freigeben: 2024-12-16 08:34:12
Original
616 Leute haben es durchsucht

How to Efficiently Pass Variables into Laravel's `whereExists` Subqueries?

Übergabe von Variablen an Laravel's Advanced Wheres

In Laravel kann die Verwendung von Unterabfragen mit der Methode whereExists unkompliziert sein. Allerdings ergeben sich Herausforderungen, wenn externe Variablen in den Abschluss einbezogen werden müssen. Die Verwendung externer Variablen wie $this->city->id kann die Effizienz des Codes beeinträchtigen.

Lösung: Verwendung des Schlüsselworts „use“

Um dieses Problem zu beheben, ermöglicht das Schlüsselwort use die Übergabe der erforderlichen Variablen aus dem übergeordneten Bereich an den Abschluss. Dieser Ansatz ermöglicht die bequeme Verwendung externer Variablen innerhalb des Abschlusses.

Zum Beispiel:

DB::table('users')
    ->where(function ($query) use ($activated) {
        $query->where('activated', '=', $activated);
    })
    ->get();
Nach dem Login kopieren

PHP 7.4 Update: Pfeilfunktionen

PHP 7.4 führt Pfeilfunktionen ein, eine prägnantere Form anonymer Funktionen. Dies bietet eine noch einfachere Möglichkeit, Variablen an Abschlüsse zu übergeben.

Hier ist ein Beispiel für die Verwendung von Pfeilfunktionen in PHP 7.4:

DB::table('users')
    ->where(fn($query) => $query->where('activated', '=', $activated))
    ->get();
Nach dem Login kopieren

Im Vergleich zur regulären Syntax weisen Pfeilfunktionen die folgenden Unterschiede auf :

  • Sie verwenden das Schlüsselwort fn anstelle der Funktion.
  • Sie erfassen alle Variablen von automatisch in den übergeordneten Bereich übernommen, sodass das Schlüsselwort „use“ nicht mehr erforderlich ist.
  • Sie geben immer einen Wert zurück, was ungültige Rückgabetypdeklarationen unmöglich macht.
  • Sie müssen das Schlüsselwort „return“ weglassen.
  • Sie müssen als einzelner Ausdruck definiert werden, was mehrzeilige Funktionen einschränkt, aber eine Methodenverkettung ermöglicht.

Das obige ist der detaillierte Inhalt vonWie kann man Variablen effizient an die „whereExists'-Unterabfragen von Laravel übergeben?. 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