Regroupement des résultats éloquents de Laravel par jours
Lorsque vous travaillez avec une table contenant des enregistrements qui suivent l'activité des utilisateurs, le regroupement par jours peut être utile pour obtenir un aperçu des modèles de trafic. Cependant, la présence d'heures différentes pour chaque enregistrement peut entraver un regroupement précis.
Solution 1 : DB::Raw Query
Pour obtenir un regroupement par jour, utilisez l'option Fonction DATE() dans MySQL. Cette fonction supprime les composants temporels des horodatages, ce qui donne des dates pures.
DB::table('page_views') ->select(DB::raw('DATE(created_at) as date'), DB::raw('count(*) as views')) ->groupBy('date') ->get();
Solution 2 : Requête éloquente avec Carbon
Pour rester dans le cadre Laravel Eloquent, exploiter Carbon pour la manipulation des dates. La première clause Where filtre les enregistrements créés au cours du mois dernier. Le regroupement par date et le classement par ordre décroissant assurent une présentation chronologique.
<code class="php">$visitorTraffic = PageView::where('created_at', '>=', \Carbon\Carbon::now()->subMonth()) ->groupBy('date') ->orderBy('date', 'DESC') ->get(array( DB::raw('Date(created_at) as date'), DB::raw('COUNT(*) as "views"') ));</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!