Tenho uma tabela que contém, entre outras colunas, uma coluna de versões de navegador. E eu simplesmente quero saber pelo conjunto de registros quantos de cada tipo de navegador existem. Então, eu preciso terminar com algo assim: Total de registros: 10; Internet Explorer 8: 2; Chrome 25: 4; Firefox 20: 4. (Todos somando até 10)
Aqui estão meus dois pence:
$user_info = Usermeta::groupBy('browser')->get();
Claro que contém apenas os 3 navegadores e não o número de cada um. Como posso fazer isso?
DB::table('usermetas')->..
maisUsermeta::..
?Isso funciona para mim (Laravel 5.1):
fonte
Obrigado Antonio,
Acabei de adicionar o
lists
comando no final para que ele retorne apenas uma matriz com chave e contagem:fonte
list()
foi descontinuado e renomeado parapluck()
laravel.com/docs/5.2/upgrade#upgrade-5.2.0Se você deseja obter a coleção, groupBy e contar:
Felicidades!
fonte
Funciona assim também, um pouco mais arrumado.
getQuery()
apenas retorna o construtor subjacente, que já contém a referência da tabela.fonte
config/database.php
strict
chave dentromysql
configurações de conexãofalse
fonte
Tente com isso
fonte
Aqui está uma maneira mais Laravel de lidar com group by sem a necessidade de usar instruções brutas.
fonte
Se você quiser obter dados classificados, use também
fonte
Este é um exemplo cujos resultados contam de postagem por categoria.
fonte