J'essaye d'obtenir le nombre de marques uniques de ma table de produits avec leur compte d'une collection de Laravel.Obtenir le nombre de valeurs uniques avec le nom de la colonne dans Laravel 5.2 Collection
J'ai été capable de le faire en utilisant une requête spécifique pour les produits mais la raison pour laquelle j'utilise une collection est maintenant parce que je veux aussi obtenir les Origines de Produit (Pays), Conditions (Utilisé/Nouveau) des produits et je pensais qu'il serait préférable d'utiliser une collection d'une requête plutôt que d'avoir trois requêtes distinctes pour chaque donnée.
Le code ci-dessous fonctionne mais il ne montre pas le nombre de chaque marque unique.
Voici mon contrôleur
$products = DB::table('products')
->select('products.*')
->whereNull('products.deleted_at')
->get();
$BrandCollection = collect($products);
$Brands = $BrandCollection->unique('Brand')->sortBy('Brand')->keyBy('Brand')->pluck('Brand');
Ainsi, le résultat que je cherche est
HP 3
Toshiba 2
Lenovo 1
Je pensais que cela pourrait être fait en utilisant concat pour la collection mais depuis que je suis sur Laravel 5.2, je suis à la recherche d'autres solutions.
Parfait! Travaillé comme un charme. – user3659497
Comment appliqueriez-vous le tri? Coz- sort ('Marque) -> reverse() ne fonctionne pas – user3659497
@ user3659497 Ça marche pour moi, l'avez-vous vérifié? 'sort' devrait trier ascendant et' reverse' inversera l'ordre –