Любой способ подсчета данных без использования иерархического foreach в блейд-представлении

#laravel #laravel-blade

#laravel #laravel-блейд

Вопрос:

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

=> $ a, $ b, $ c — это таблица
=> fun1 amp; fun2 — это отношение «один-многие» из ($ a, $ b) amp; ($ b, $ c)

Я пытаюсь {{ $ a-> fun1-> fun2-> count() }}, но он говорит, что [fun2] не существует в этом экземпляре коллекции

  $k=0;
 @foreach($a->fun1 as $b )
     @foreach($b->fun2 as $c)
         $k  ;
     @endforeach
 @endforeach
  

Комментарии:

1. $a->fun1->sum(function ($b) { return $b->fun2->count(); });

2. спасибо, братан. Я нахожу другой способ ‘@foreach($ a-> fun1 как $ b) <?php $ k= $b-> fun2->count() $ k; ?> @endforeach {{ $ k}’ но я думаю, что ваш код более прост, чем мой

Ответ №1:

Существует $loop переменная

 $loop->index
  

Индекс текущей итерации цикла (начинается с 0).

 $loop->iteration
  

Текущая итерация цикла (начинается с 1).

 $loop->count
  

Общее количество элементов в массиве, которое повторяется.

 $loop->parent
  

Во вложенном цикле используется переменная родительского цикла.

https://laravel.com/docs/5.8/blade#the-loop-variable