In Situationen, in denen Sie externe Variablen an eine erweiterte Where-Klausel von Laravel übergeben müssen, z. B. beim Filtern von Ergebnissen mithilfe benutzerdefinierter Klauseln Suchkriterien verwenden, reicht die in der Dokumentation bereitgestellte Standardsyntax möglicherweise nicht aus.
Glücklicherweise gibt es eine bequemere Lösung mit der Verwendung Schlüsselwort, mit dem Sie Variablen aus dem übergeordneten Bereich in den Abschluss einfangen können, der die where-Klausel definiert. Zum Beispiel:
DB::table('users')->where(function($query) use ($searchQuery) { $query->where('name', 'LIKE', '%'.$searchQuery.'%') ->orWhere('address', 'LIKE', '%'.$searchQuery.'%'); });
In diesem Beispiel wird die Variable $searchQuery vom übergeordneten Bereich an den Abschluss übergeben und kann innerhalb der where-Klausel verwendet werden. Das Schlüsselwort use stellt sicher, dass die Variable per Referenz erfasst wird, sodass innerhalb des Abschlusses auf sie zugegriffen und sie geändert werden kann.
Alternativ können Sie mit der Einführung der Pfeilfunktionen von PHP 7.4 das gleiche Ergebnis mit a erzielen prägnantere Syntax:
DB::table('users')->where(fn($query) => $query->where('name', 'LIKE', '%'.$searchQuery.'%') ->orWhere('address', 'LIKE', '%'.$searchQuery.'%'));
Pfeilfunktionen erfassen automatisch Variablen aus dem übergeordneten Bereich, sodass sie nicht explizit mithilfe von use aufgelistet werden müssen. Es ist jedoch wichtig zu beachten, dass Pfeilfunktionen immer einen Wert zurückgeben und das Weglassen des Schlüsselworts „return“ erfordern.
Das obige ist der detaillierte Inhalt vonWie übergebe ich Variablen an Laravel Advanced Where-Klauseln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!