Mehrere WHERE-Klauseln in Laravel Eloquent verketten oder gruppieren
Das Arbeiten mit mehreren WHERE-Klauseln in Laravel Eloquent-Abfragen kann bei Verwendung der mühsam und unraffiniert erscheinen Standard-Verkettungssyntax. Es stehen jedoch mehrere alternative Ansätze zur Verfügung, um die Eleganz und Lesbarkeit Ihres Codes zu verbessern.
Verwendung einer Array-basierten WHERE-Klausel
Eingeführt in Laravel 5.3, Array- Mit WHERE-Klauseln können Sie mehrere Bedingungen in einem einzigen Aufruf gruppieren. Dies kann die Anzahl der erforderlichen Codezeilen erheblich reduzieren, wie im folgenden Beispiel zu sehen ist:
$query->where([ ['column_1', '=', 'value_1'], ['column_2', '!=', 'value_2'], ['column_3', '=', 'value_3'], ... ]);
Gruppieren von WHERE-Klauseln für UND-Operationen
Wenn alle Ihre WHERE-Klauseln verwenden den AND-Operator. Sie können sie in einem Array gruppieren und an die where-Methode übergeben. Dies ähnelt dem Array-basierten Ansatz, spezifiziert jedoch explizit die AND-Bedingung.
$matchThese = ['field' => 'value', 'another_field' => 'another_value', ...]; $results = User::where($matchThese)->get();
Gruppen mit OR-Operator kombinieren
Um eine komplexere Abfrage mit beiden zu erstellen Mit den Operatoren AND und OR können Sie verschachtelte Arrays verwenden. Das folgende Beispiel kombiniert die beiden vorherigen Techniken:
$matchThese = ['field' => 'value', 'another_field' => 'another_value', ...]; $orThose = ['yet_another_field' => 'yet_another_value', ...]; $results = User::where($matchThese) ->orWhere($orThose) ->get();
Diese Abfrage würde das folgende SQL generieren:
SELECT * FROM users WHERE (field = value AND another_field = another_value AND ...) OR (yet_another_field = yet_another_value AND ...)
Durch die Verwendung dieser alternativen Ansätze können Sie die Klarheit und Prägnanz Ihrer Abfrage verbessern Eloquente Abfragen, wodurch die Notwendigkeit einer ausführlichen und sich wiederholenden Verkettungssyntax reduziert wird.
Das obige ist der detaillierte Inhalt vonWie kann ich mehrere WHERE-Klauseln in Laravel Eloquent effizient verketten oder gruppieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!