Laravel Blade: Увеличивает переменную на 1 каждый раз?

Использование шаблона blade-сервера Laravel, есть способ включить переменную и увеличивать каждый раз в foreach или что лучше подходит?

Например:

@foreach($categories as $category)
  <li><a href="#tab_c1" role="tab" data-toggle="tab">{{$category->name}}</a></li>
@endforeach

В блоке foreach значение из # tab_c1 необходимо увеличить. например: #tab_c1, #tab_c2, #tab_c3

Ответ 1

Добавить итератор в @foreach:

@foreach($categories as $key => $category)
  <li @if ($key === 0) class="active" @endif>
    <a href="#tab_c{{$key+1}}" role="tab" data-toggle="tab">
      {{$category->name}}
    </a>
  </li>
@endforeach

{{$key+1}} в моем примере, потому что в PHP итератор начинается с 0.

Ответ 2

В Laravel 5.3 вы можете использовать переменную Loop Variable, $loop- > iteration для конкретной ситуации. https://laravel.com/docs/5.3/blade#the-loop-variable

Exapmle:

@foreach ($questions as $question)
    <tr>
        <th scope="row">{{ $loop->iteration }}</th>
        <td>{{ $question->question }}</td>
        <td>{{ $question->category_id }}</td>
    </tr>
@endforeach

Ответ 3

Просто используйте значение ключа. Для большинства массивов будет только 0.

@foreach($categories as $i => $category)
  <li{{ $i == 0 ? ' class="active"' : '' }}><a href="#tab_c{{ $i }}" role="tab" data-toggle="tab">{{$category->name}}</a></li>
@endforeach

Ответ 4

Добавить ключевое значение в цикле foreach

@foreach($questions as $key => $question)
<tr>
    <th scope="row">{{ ++$key }}</th>
    <td>{{ $question->question }}</td>
    <td>{{ $question->category_id }}</td>
</tr>
@endforeach

Ответ 5

Просто используйте {{ $loop->iteration }} для повторения от 1 до ограничения

@foreach($categories as $category)
  <li><a href="#tab_c{{ $loop->iteration }}" role="tab" data-toggle="tab">{{$category->name}}</a></li>
@endforeach

Ответ 6

Вы можете попробовать это:

@php($count=0)

@foreach($unit->materials as $m)
    @if($m->type == "videos")
        @php($count++)
    @endif
@endforeach

{{$count}}