J'ai cette fonction qui récupère les données de MySQL par mois en utilisant carbon
->where(\DB::raw('week(created_at)'), Carbon::today()->week)
Cela fonctionne bien ce que je veux faire est d'obtenir les données par semaine
J'ai essayé de modifier le code comme ceci:
$calls = \DB::table('calls')
->where('owned_by_id', $report->id)
->where(\DB::raw('month(created_at)'), Carbon::today()->month)
->get();
$report->callsCount = $calls->count();
mais j'obtiens une erreur dans Laravel
"Semaine" getter inconnue
3 Réponses :
Utilisez whereBetween avec deux instances de date carbone.
->whereBetween('created_at', [
Carbon\Carbon::parse('last monday')->startOfDay(),
Carbon\Carbon::parse('next friday')->endOfDay(),
])
Merci beaucoup mais ça n'a pas fonctionné pour moi idk pourquoi
Quels résultats avez-vous et qu'attendez-vous?
Vous avez besoin de filtrer la date par semaine qui signifie la plage de dates essayez ceci
$calls = \DB::table('calls')
->where('owned_by_id', $report->id)
->whereBetween('created_at', [Carbon::now()->subWeek()->format("Y-m-d H:i:s"), Carbon::now()])
->get();
$report->callsCount = $calls->count();
Cela signifie pour obtenir toutes les données des 7 derniers jours à maintenant en fonction du carbone docs https://carbon.nesbot.com/docs/ et laravel docs https://laravel.com/docs/5.8/queries#where-clauses
Merci beaucoup exactement ce que je voulais Merci
Rabena yebareklak: D
Comme le dit @Abrar, si vous devez compter le nombre total d'appels du mois en cours, vous pouvez utiliser whereB Between:
$calls = \DB::table('calls')
->where('owned_by_id', $report->id)
->whereBetween('created_at', [
now()->locale('en')->startOfWeek(),
now()->locale('en')->endOfWeek(),
])
->get();
$report->callsCount = $calls->count();
Mais vous voulez compter le nombre total d'appels par semaine dont vous avez besoin pour utiliser groupBy. Bonne chance!
Merci beaucoup pour votre réponse mais j'ai la méthode locale n'existe pas
peut-être avez-vous une ancienne version de Laravel et n'avez pas l'assistant now ()
vous voulez obtenir des données à partir de quelle semaine, c'est-à-dire d'aujourd'hui aux 7 jours précédents ??
`-> where (\ DB :: raw ('month (created_at)'), Carbon :: today () -> month)` Ce code est exactement le même, alors qu'avez-vous modifié?