J'ai un tableau qui contient, entre autres colonnes, une colonne des versions de navigateur. Et je veux simplement savoir à partir du jeu d'enregistrements, combien il y a de chaque type de navigateur. Donc, je dois me retrouver avec quelque chose comme ceci: Total Records: 10; Internet Explorer 8: 2; Chrome 25: 4; Firefox 20: 4. (tout en ajoutant jusqu'à 10)
Voici mes deux pence:
$user_info = Usermeta::groupBy('browser')->get();
Bien sûr, cela ne contient que les 3 navigateurs et non le nombre de chacun. Comment puis-je faire ceci?
DB::table('usermetas')->..
plusUsermeta::..
?Cela fonctionne pour moi (Laravel 5.1):
la source
Merci Antonio,
Je viens d'ajouter la
lists
commande à la fin afin qu'elle ne renvoie qu'un seul tableau avec la clé et le nombre:la source
list()
est obsolète et renommépluck()
laravel.com/docs/5.2/upgrade#upgrade-5.2.0Si vous voulez obtenir collection, groupBy et count:
À votre santé!
la source
Fonctionne de cette façon aussi, un peu plus ordonné.
getQuery()
renvoie simplement le générateur sous-jacent, qui contient déjà la référence de table.la source
config/database.php
strict
clé dansmysql
les paramètres de connexionfalse
la source
Essayez avec ça
la source
Voici une manière plus Laravel de gérer le group by sans avoir besoin d'utiliser des instructions brutes.
la source
Si vous souhaitez obtenir des données triées, utilisez également ceci
la source
Ceci est un exemple qui résulte du décompte des publications par catégorie.
la source