AlexanderShapoval
@AlexanderShapoval
PHP maker

Laravel, группировка через groupby(). Как вернуть массив содержащий id?

День добрый.
Имеется запрос
$ret = User::select('id')->groupBy('age')->get();

Группирует норм, только надо в результате получить массивы с id пользователей:
[1,3,8,9],[2,4,5,7],[6,10].....

Подскажите, как это сделать. Спасибо!
  • Вопрос задан
  • 2484 просмотра
Решения вопроса 1
abler98
@abler98
Software Engineer
$users = User::select(DB::raw('GROUP_CONCAT(id) as id'))->groupBy('age')->get();
$groups = $users->map(function ($item, $key) {
  return explode(',', $item['id']); // Возможно здесь ошибся
});
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Denormalization
@Denormalization
Как-то вот так (костыльно):
$ret = User::select('id', 'age')->get()->groupBy('age')->map(function ($item) { return $item->pluck('id'); } )->toArray();
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы