У меня есть таблица, которая содержит, помимо других столбцов, столбец версий браузера. И я просто хочу узнать из набора рекордов, сколько существует браузеров каждого типа. Итак, мне нужно получить что-то вроде этого: Всего записей: 10; Internet Explorer 8: 2; Хром 25: 4; Firefox 20: 4 (все в сумме до 10)
Вот мои два пенса:
$user_info = Usermeta::groupBy('browser')->get();
Конечно, здесь указаны только 3 браузера, а не количество каждого из них. Как я могу это сделать?
DB::table('usermetas')->..
большеUsermeta::..
?Это работает для меня (Laravel 5.1):
источник
Спасибо Антонио,
Я только что добавил
lists
команду в конце, поэтому она вернет только один массив с ключом и счетчиком:источник
list()
устарела и переименована вpluck()
laravel.com/docs/5.2/upgrade#upgrade-5.2.0Если вы хотите получить коллекцию, groupBy и count:
Ура!
источник
Работает и так, немного аккуратнее.
getQuery()
просто возвращает базовый построитель, который уже содержит ссылку на таблицу.источник
config/database.php
strict
ключ вmysql
настройках подключенияfalse
источник
Попробуйте с этим
источник
Вот еще один способ Laravel для обработки группы без необходимости использовать необработанные операторы.
источник
Если вы хотите получить отсортированные данные, используйте это также
источник
Это пример подсчета сообщений по категориям.
источник