J'utilise laravel 5.4. Imaginez que je veux montrer de la publicité automobile. J'obtiendrai tous les dossiers de voiture d'une table et les chargerai dans ma page. Maintenant je veux montrer plusieurs catégories avec des comptes dans une barre latérale (types de voiture, couleurs de voiture, carburants de voiture) et je veux montrer le compte pour chaque catégorie. Par exemple: nous avons 10 annonces auto, deux d'entre elles sont en rouge, trois sont en vert et cinq en blanc. Je veux avoir quelque chose comme ça dans une barre latérale:Comment groupby avec count en laravel pour plusieurs champs
red(2)
green(3)
white(5)
Je l'ai fait avec SQL groupBy
:
$colors = DB::table('advertisments')->select('color_name', DB::raw('count(color_name) as total_color'))->groupBy('color_name')->get();
$gearboxes = DB::table('advertisments')->select('gearbox', DB::raw('count(gearbox) as total_gearbox'))->groupBy('gearbox')->get();
$param = ['colors' => $colors,'gearboxes' => $gearboxes];
return view('ads' , compact('ads','param'));
Cependant, j'ai des dizaines de catégories et je ne peux pas le faire avec un groupBy si la nombre de requêtes va être trop élevé. Existe-t-il un moyen de le faire avec une seule requête ou avec moins de requêtes?
Que voulez-vous? Requête sql avec un code group by ou laravel? –
Cela n'a pas d'importance, je veux juste faire ça. Mais je pense que c'est seulement possible avec sql et groupe par –