Laravel Blade:变量每次加1?

Laravel Blade: Increment variable by 1 each time?

使用 Laravel blade 模板,有没有办法在 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

只需使用键值即可。对于大多数只会为 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

将迭代器添加到 @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 开始。

在Laravel 5.3中你可以使用循环变量,$loop->iteration具体情况。 https://laravel.com/docs/5.3/blade#the-loop-variable

示例:

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

在foreach循环中添加键值

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

只需使用{{ $loop->iteration }}从1迭代到limit

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

你可以试试这个:

@php($count=0)

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

{{$count}}

这应该可以解决问题 @php 等同于 php 打开和关闭标签 laravel

<?php $count=0; ?>
 @php($count=0)

<table>
<th>#</th>
<th>Category Name</th>
<tbody>
@php($count=0)
@foreach($categories as $category)
@php($count++)
<tr>
<td>{{$count}}</td>
<td>{{$category->name}}</td>
</tr>
@endforeach
</tbody>
</table>