Je suis en train de construire des graphiques statistiques analytiques pour un tableau de bord administrateur en utilisant Laravel. Je m'amuse beaucoup. Bien que j'ai un peu de difficulté à comprendre comment utiliser les requêtes SQL et la fonction GroupBy pour réaliser certaines choses.Count & GroupBy Fonction Laravel
objectif final: retreive le nombre de utilisateurs qui ont été créés et GroupBy la semaine ils ont enregistré.
Jusqu'à présent, je suis en utilisant ceci:
DB::table("users")
->select(DB::raw("COUNT(*) as count"))
->orderBy("created_at")
->groupBy(function ($query)
{
return \Carbon\Carbon::parse($query->created_at)->format("W");
})
->get();
Je reçois une erreur dans Tinker (qui est où je fais la majorité de mes tests au moment où il est quelque chose comme ceci:
PHP warning: strtolower() expects parameter 1 to be string, object given in
/Users/Ian/sites/bangerz-army/vendor/laravel/framework/src/Illuminate/Database/Grammar.php on line 58
j'avais obtenu une requête similaire à travailler en PHP, mais pour des raisons de performance je préfère garder autant de mathématiques dans SQL possible.
/Laravel 5.5
Ou utiliser 'orderByRaw' et' groupByRaw' :) – fubar
Cela fonctionne parfaitement comme je stocke mes created_at's comme des instances de carbone selon Laravel par défaut. J'apprécie grandement l'aide! –