Отношение суммы по сгруппированной коллекции - PullRequest
0 голосов
/ 13 мая 2018

У меня есть две таблицы: Счет-фактура и Услуги. Я пытаюсь запросить счета-фактуры со службами как отношения. У меня есть счета, сгруппированные по дате. Есть ли правильный способ суммировать столбец в отношении после того, как я сгруппировал коллекцию? Это единственное решение, которое я нашел, но оно предполагает использование php-кода, на мой взгляд. Я хотел бы сохранить php в контроллере, если это возможно.

Вот мой контроллер:

$invoices = \App\Invoice::
        with('services')
        ->orderBy('date')
        ->get()
        ->groupBy(function($item) {
        return Carbon::createFromFormat('Y-m-d', $item->date)->format('Y-M');
     });

Вот мой взгляд:

@foreach ($invoices as $key=>$i)
   <tr>
     <td>{{$key}}</td>
     <td class="text-right">{{$i->sum('discount')}}</td>
     <td class="text-right"> 
        <?php $sum = 0;?>
        @foreach($i as $x)
          <?php $sum += $x->services->sum('rate') ?>
        @endforeach
        {{$sum}}
     </td>
  </tr>
@endforeach

1 Ответ

0 голосов
/ 14 мая 2018

Используйте это:

$i->pluck('services')->collapse()->sum('rate')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...