Подсчет уникальных значений, массив возвращаемых объектов - PullRequest
0 голосов
/ 10 сентября 2018

Я искал все выше и ниже, как это сделать с помощью уникального счетчика, сгруппированных по группам и т. Д. При переполнении стека по этому конкретному запросу, но безуспешно.

У меня есть схема базы данных

______________
|____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();
    }
...