Показать общую сумму на благотворительность в Laravel 5.2

php group-by laravel-5.2

64 просмотра

2 ответа

874 Репутация автора

У меня есть таблица charity_donations, которая содержит charity_id, сумму, пожертвованную для этой благотворительности, среди других полей. Вот как это выглядит.

Таблица благотворительных пожертвований

Мне нужно сгруппировать каждый идентификатор благотворительной организации, а затем подсчитать, сколько денег было пожертвовано для этой конкретной благотворительной организации. И самое главное, мне нужно отобразить это в представлении.

Что-то вроде этого:

Благотворительный ID | Общее количество

1 | 1200 долларов ....

Я попробовал это,

 $displayPerCharity = CharityDonation::select(DB::Raw('charity_id, COUNT(*) as              count'))->groupBy('charity_id')->get();

        dd($displayPerCharity);

Это подсчитывает идентификаторы благотворительности, а затем дает мне сумму для каждой благотворительности. Но мне нужно общее количество для каждой благотворительности, а затем отображать в поле зрения.

Автор: David Источник Размещён: 18.07.2016 12:52

Ответы (2)


0 плюса

874 Репутация автора

Решение

Понял!

$displayPerCharity = DB::table('charity_donations')
            ->select(DB::raw('SUM(amount) as charity_amount, charity_id'))
            ->groupBy('charity_id')
            ->orderBy('charity_amount', 'desc')
            ->get();

Тогда ввиду:

@foreach ($displayPerCharity as $group)
  <h1> Charity ID {{ $group->charity_id }} received {{ $group->charity_amount }}</h1>
@endforeach
Автор: David Размещён: 18.07.2016 01:21

0 плюса

9663 Репутация автора

Хорошо, как вы отображаете это полностью зависит от того, как вы хотите, чтобы он выглядел.

Если вы просто застряли на том, как получить каждый благотворительный идентификатор и сумму, то вы можете просто сделать это с помощью foreachцикла.

Вот пример использования адаптивной таблицы Bootstrap. Это предполагает, что после того, как вы выполнили запрос, вы передали его представлению в виде переменной с именем $displayPerCharity.

<div class="table-responsive">
  <table class="table">
    <thead>
      <tr>
        <th>Charity ID</th>
        <th>Amount ($)</th>
      </tr>
    </thead>
    <tbody>
      @foreach($displayPerCharity as $display)
      <tr>
        <td>{{ $display->charity_id }}</td>
        <td>{{ $display->charity_amount }}</td>
      </tr>
      @endforeach
    </tbody>
  </table>
 </div>
Автор: James Размещён: 18.07.2016 01:23
Вопросы из категории :
32x32