Ich bin mit dem Laravel Query Builder, um dynamisch Daten zu filtern, basierend auf einem Filterauswahl des Benutzers:Wie Klammern um WHERE-Bedingungen mit Laravel Query Builder hinzuzufügen
$query = DB::table('readings');
foreach ($selections as $selection) {
$query->orWhere('id', $selection);
}
$query->whereBetween('date', array($from, $to));
$query->groupBy('id');
Wenn ich die SQL untersuchen, bekomme ich so etwas wie dies:
select count(*) as `count` from `readings` where `id` = 1 or id` = 2 and `date` between "2013-09-01" and "2013-09-31" group by `id`;
Aber was ich brauche, ist so etwas wie diese (mit Klammern um die oder Aussagen):
select count(*) as `count` from `readings` where (`id` = 1 or id` = 2) and `date` between "2013-09-01" and "2013-09-31" group by `id`;
Wie füge ich Klammern um WHERE-Bedingungen mit Laravel Query Builder hinzu?
hinzugefügt Alternative aber ich denke, Ihre Version besser sein, meine leere Ergebnisse von '$ selection' im Umgang mit . Vielleicht scheitern beide, wenn die IDs leer sind, ich bin mir nicht sicher. Ich schätze, es kommt darauf an, was du willst, wenn du keine IDs auswählst. In jedem Fall ist Ihre Antwort die allgemeinere Antwort auf die Frage im Titel. –