Laravel Query Builder - Wie man entweder nach Alias gruppiert oder raw groupBy @ mac
ie @My Laravel 5-App enthält einen dynamischen Abfrage-Generator für die Berichtsausführung. Ich brauche ein paar Group-by-Klauseln und bin auf ein Problem gestoßen. Wenn ich dort tatsächliches SQL verwende, kann es zu Problemen kommen, da manchmal ein SQL-Befehl in der SQL erforderlich ist (im Gegensatz zu einfachen Spaltennamen), dh -DAYNAME(table_name.date_column)
. Laravel zerfleischt dies:
\`DAYNAME(table_name\`.\`date_column)\`
Für den ausgewählten Teil meiner Abfrage kann ich selectRaw verwenden, aber es scheint keine Entsprechung für group by zu geben.
Ich habe überlegt, Aliase zu verwenden (alle Selects sind mit einem Alias versehen), aber Laravel schließt sie ebenfalls in "` "Zeichen ein. Außerdem: Meine App muss sowohl mit MySQL als auch mit SQL Server funktionieren. Soweit ich weiß, lässt diese App keine Aliase in der Gruppe nach Abschnitten der Abfrage zu.
Ich kann die Methode in Illuminate \ Database \ Query \ Grammars \ Grammar finden, in der die Gruppe von kompiliert wird (compileGroups), und ich nehme an, ich könnte sie überschreiben, bin mir aber nicht sicher, wie ich dabei vorgehen würde (habe die Laravel gelesen) docs).