Heim >Datenbank >MySQL-Tutorial >Wie kann ich Variablen an die erweiterten Where-Verschlüsse von Laravel übergeben?

Wie kann ich Variablen an die erweiterten Where-Verschlüsse von Laravel übergeben?

Linda Hamilton
Linda HamiltonOriginal
2024-12-20 22:04:12164Durchsuche

How Can I Pass Variables to Laravel's Advanced Where Closures?

Übergabe von Variablen an die erweiterten Where-Abschlüsse von Laravel

Die erweiterten Where-Funktionen von Laravel bieten leistungsstarke Möglichkeiten zum Filtern Ihrer Abfragen. Es kann jedoch vorkommen, dass Sie externe Variablen an den in der Where-Funktion verwendeten Abschluss übergeben müssen.

Beispielszenario

Angenommen, Sie möchten eine externe Variable verwenden , wie etwa $searchQuery, in Ihrem Where-Abschluss:

->where('city_id', '=', $this->city->id)
->where(function($query)
    {
        $query->where('name', 'LIKE', '%'.$searchQuery.'%')
        ->orWhere('address', 'LIKE', '%'.$searchQuery.'%')

    })

Verwenden Sie das Schlüsselwort Lösung

Sie können die notwendigen Variablen mit dem Schlüsselwort use in den Abschluss übergeben:

DB::table('users')->where(function ($query) use ($searchQuery) {
    $query->where('name', 'LIKE', '%'.$searchQuery.'%')
    ->orWhere('address', 'LIKE', '%'.$searchQuery.'%')
})->get();

PHP 7.4 Arrow Function (Update)

In PHP 7.4 und höher können Sie Pfeilfunktionen für eine prägnantere Darstellung verwenden Syntax:

DB::table('users')->where(fn($query) => $query->where('name', 'LIKE', '%'.$searchQuery.'%')
->orWhere('address', 'LIKE', '%'.$searchQuery.'%'))->get();

Im Gegensatz zu regulären anonymen Funktionen erfassen Pfeilfunktionen automatisch Variablen aus dem übergeordneten Bereich und erlauben keine explizite Auflistung über die Verwendung. Sie müssen jedoch eine einzige Return-Anweisung haben und dürfen nicht mehrere Codezeilen enthalten.

Das obige ist der detaillierte Inhalt vonWie kann ich Variablen an die erweiterten Where-Verschlüsse 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