Laravel Fließend hinzufügen, wählen Sie()s in unterschiedlichen Orten?
//Earlier in the code, in each Model:
query = ModelName::select('table_name.*')
//Later in the code in a function in a Trait class that is always called
if ($column == 'group_by')
{
$thing_query->groupBy($value);
$thing_query->select(DB::raw('COUNT('.$value.') as count'));
}
Gibt es eine Möglichkeit zum Anhängen oder mit einem separaten select-Funktion in das beredte Abfrage-generator?
Den ist ->wählen Sie() wird zuvor festgelegt und anschließend diese Funktion aufgerufen wird. Ich möchte noch hinzufügen, dass die Spalte "Anzahl" bedingt in diese spätere Funktion, die die Abfrage an Sie übergeben.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für zukünftige Referenz verwenden, können Sie die addSelect() Funktion.
Wäre es gut zu haben in die Dokumentation, aber Sie finden, dass es hier in der API: http://laravel.com/api/4.2/Illuminate/Database/Query/Builder.html#method_addSelect
Yeah fügen Sie einfach den block aus, den Sie will ausführen als Funktion....laut der Dokumentation auf Parameter-Gruppierung , die Sie tun können, wie so...by vorbei die Wo eine Funktion...
Dieser code unten wahrscheinlich nicht tun, was Sie wollen, aber das ist etwas, was für Sie zu bauen aus, und spielen, um mit.
Versuchen Sie dies:
$thing_query->groupBy($value)->get(DB::raw('COUNT('.$value.') as count'));
Auch,wenn Sie nur versuchen, um die Anzahl und nicht wählen Sie mehrere Dinge, die Sie verwenden können
->count()
statt->get()