У меня есть таблица с именем item
, которая имеет отношение отношение к таблице с именем source
. Я хочу сгруппировать все элементы по их источнику, и в конце я хочу массив, в котором ключом является source->name
, а в качестве значения - число связанных элементов.
Это то, что у меня так далеко:
Item::where('type', '=', Item::TYPE_POST)
->with('source')
->select('source_id', DB::raw('count(*) as total'))
->groupBy('source_id')
->pluck('total', 'source_id')
->all();
array:1 [
89 => 149
]
Это дает мне структуру, которую я хочу, но элементы сгруппированы не по source->name
, а по source_id
, что является полем в таблице Item
. Есть ли способ получить ключ в массиве в виде поля из связанной таблицы?