-1
votes

Groupby des relations avec éloquent Laravel

J'ai typeOfveHicle modèle comportant de nombreux véhicule . 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
xxx


2 commentaires

Montrez votre modèle et votre code que vous avez fait


rien à partager. typeOfveHicle modèle n'a que l'attribut NAME et HASMANY relation avec véhicule . véhicule 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


4 Réponses :


1
votes

Vous pouvez utiliser

$counts = DB::table('tablename')
                 ->select('TypeOfVehicle', DB::raw('count(*) as total'))
                 ->groupBy('TypeOfVehicle')
                 ->get();


0 commentaires

1
votes

Compter des modèles connexes

Si vous souhaitez compter le nombre de résultats d'une relation sans les charger, vous pouvez utiliser la méthode withcount {Relation} _Count colonne sur vos modèles résultants. xxx


1 commentaires

Qui peut faire le travail mais j'espérais ce groupe avec une fermeture à l'intérieur peut faire l'affaire



1
votes

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


0 commentaires

1
votes

Je suppose que vous avez une relation éloquente type dans véhicule modèle, par exemple: xxx

Donc, vous pouvez obtenir des données de cette façon : xxx


0 commentaires