Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich mehrere WHERE-Klauseln in Laravel Eloquent effizient erstellen?

Wie kann ich mehrere WHERE-Klauseln in Laravel Eloquent effizient erstellen?

Barbara Streisand
Freigeben: 2024-12-15 18:02:10
Original
149 Leute haben es durchsucht

How Can I Efficiently Craft Multiple WHERE Clauses in Laravel Eloquent?

Abfragen mit mehreren Where-Klauseln in Laravel Eloquent erstellen

Beim Erstellen von Datenbankabfragen in Laravel Eloquent kann es vorkommen, dass Sie mehrere Bedingungen mithilfe der Where-Klausel angeben müssen . Während die Kaskadierung mehrerer Where-Aufrufe ein gängiger Ansatz ist, gibt es elegantere Alternativen, die in Betracht gezogen werden sollten.

Alternativer Ansatz: Array-basierte Where-Bedingungen (Laravel 5.3 und höher)

Laravel bietet einen prägnanteren Weg So geben Sie mehrere Where-Bedingungen mithilfe eines Arrays an:

$query->where([
    ['column_1', '=', 'value_1'],
    ['column_2', '<>', 'value_2'],
    // ...
]);
Nach dem Login kopieren

Mit diesem Ansatz können Sie mehrere Where-Klauseln in einer einzigen Funktion gruppieren Aufruf.

Verwendung der Array-Methode vor Laravel 5.3

Vor Laravel 5.3 konnten Sie ein Array verwenden, um mehrere Where-Bedingungen anzugeben, wenn sie alle denselben Operator verwendeten (normalerweise „und“ ):

$matchThese = ['field' => 'value', 'another_field' => 'another_value'];
$results = User::where($matchThese)->get();
Nach dem Login kopieren

Diese Methode generiert eine ähnliche Abfrage um:

SELECT * FROM users
WHERE field = value AND another_field = another_value
Nach dem Login kopieren

Unterabfragen für komplexe Logik nutzen

Wenn Sie komplexere Kriterien benötigen, können Sie Unterabfragen in Ihren where-Klauseln verwenden:

$subquery = User::where(...)->select('id')->where(...);
$results = User::whereIn('id', $subquery)->get();
Nach dem Login kopieren

In diesem Beispiel gibt die Unterabfrage eine Reihe von IDs zurück, die bestimmte Kriterien erfüllen, die dann zum Filtern der Hauptabfrage verwendet werden Abfrage.

Beispielverwendung

Betrachten Sie zur Veranschaulichung die folgende Abfrage, die Benutzer mit bestimmten Bedingungen abruft:

$results = User::where('active', 1)
    ->where('verified', 1)
    ->where('country', 'United States')
    ->get();
Nach dem Login kopieren

Mit den oben genannten alternativen Ansätzen kann die Abfrage erfolgen geschrieben als:

// Array-based where (Laravel 5.3 and later)
$conditions = [
    ['active', '=', 1],
    ['verified', '=', 1],
    ['country', '=', 'United States'],
];
$results = User::where($conditions)->get();

// Array method (prior to Laravel 5.3)
$matchThese = ['active' => 1, 'verified' => 1, 'country' => 'United States'];
$results = User::where($matchThese)->get();
Nach dem Login kopieren

Durch die Nutzung dieser Techniken können Sie prägnantere und lesbarere Abfragen erstellen und so die Wartbarkeit Ihrer Abfragen verbessern Code.

Das obige ist der detaillierte Inhalt vonWie kann ich mehrere WHERE-Klauseln in Laravel Eloquent effizient erstellen?. 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