Я искал все выше и ниже, как это сделать с помощью уникального счетчика, сгруппированных по группам и т. Д. При переполнении стека по этому конкретному запросу, но безуспешно.
У меня есть схема базы данных
______________
|____TYPE_____|
|____repair___|
|___service___|
|___repair____|
|___repair____|
|___coating___|
|___service___|
|___service___|
|__coating____|
|_maintenance_|
|___repair____|
|___coating___|
То, что я пытаюсь вернуть, - это общее количество по уникальному «типу» в базе данных.
private function getOpportunities() {
return OpportunityTypes::distinct()->select('type')->groupBy('type')->get();
}
Тип foreach возвращает следующее в массиве объектов.
array('type' => 'Repair', 'count' => 4),
...
Ремонт - 4
Сервис - 3
Покрытие - 3
Техническое обслуживание - 1
Я буду передавать возвращенные результаты в шаблон блэйда и запускать цикл foreach, чтобы отобразить все типы возможностей, которые зарегистрированы в базе данных и имеют общую сумму каждого из указанных типов.
Шаблон лезвия
@foreach ($opportunities['opportunitytypes'] as $opportunity)
{{ $opportunity['type'] }} - {{ $opportunity['total'] }}
@endforeach
Результат
Система покрытия - 1
Dead Valley - 1
Emergency Tarp - 1
Gutter Replacement - 1
Maintenance - 1
New Construction - 1
Other - 1
Replacement - 1
код
private function getOpportunities() {
return OpportunityTypes::select('type', DB::raw('count(type) as total'))->groupBy('type')->get();
}