J'ai typeOfveHicle code> modèle comportant de nombreux
véhicule code>. de
Comment puis-je regrouper tous les véhicules par type de nom de véhicule avec des comptes pour obtenir quelque chose comme ça
4 Réponses :
Vous pouvez utiliser
$counts = DB::table('tablename') ->select('TypeOfVehicle', DB::raw('count(*) as total')) ->groupBy('TypeOfVehicle') ->get();
Compter des modèles connexes forts> Si vous souhaitez compter le nombre de résultats d'une relation sans les charger, vous pouvez utiliser la méthode withcount code>
{Relation} _Count code> colonne sur vos modèles résultants. p>
Qui peut faire le travail mais j'espérais ce groupe avec une fermeture à l'intérieur peut faire l'affaire
Essayez ceci, il vous donne votre solution
$vehicle=Vehicle::all(); $grouped = $vehicle->groupBy(function ($item, $key) { return substr($item['that_coloumn_name_like_type'], 0); }); $groupCount = $grouped->map(function ($item, $key) { return collect($item)->count(); }); //dd($groupCount); to check it work correctly
Je suppose que vous avez une relation éloquente Donc, vous pouvez obtenir des données de cette façon : p> type code> dans
véhicule code> modèle, par exemple:
Montrez votre modèle et votre code que vous avez fait
rien à partager. typeOfveHicle i> modèle n'a que l'attribut NAME et HASMANY B> relation avec véhicule i>. véhicule i> modèle a véhicule_type_id, nom et autres attributs. Il n'y a pas de code parce que je ne sais pas comment faire cela avec éloquent