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
Barbara StreisandOriginal
2024-12-16 08:34:12611Durchsuche

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();

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();

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!

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