Laravel Blade 中的动态行数
Dynamic number of rows in Laravel Blade
我想要像这样的 table 中的动态行数。
number name
1 Devy
这是我的 Blade 模板。
<thead>
<th>number</th>
<th>name</th>
</thead>
<tbody>
@foreach ($aaa as $value)
<tr>
<td></td>
<td>{{$value->name}}</td>
</tr>
@endforeach
</tbody>
我该怎么做?
使用计数器并在循环中递增其值:
<thead>
<th>number</th>
<th>name</th>
</thead>
<tbody>
<?php $i = 0 ?>
@foreach ($aaa as $value)
<?php $i++ ?>
<tr>
<td>{{ $i}}</td>
<td>{{$value->name}}</td>
</tr>
@endforeach
</tbody>
只需在 foreach()
之前取一个变量,例如 $i=1
。并在 foreach()
结束之前递增 $i
。因此,您可以 echo $i
在所需的 <td></td>
这是正确的:
@foreach ($collection as $index => $element)
{{$index}} - {{$element['name']}}
@endforeach
并且必须使用index+1,因为index是从0开始的。
在视图中使用原始 PHP 不是最佳解决方案。示例:
<tbody>
<?php $i=1; @foreach ($aaa as $value)?>
<tr>
<td><?php echo $i;?></td>
<td><?php {{$value->name}};?></td>
</tr>
<?php $i++;?>
<?php @endforeach ?>
你的情况:
<thead>
<th>number</th>
<th>name</th>
</thead>
<tbody>
@foreach ($aaa as $index => $value)
<tr>
<td>{{$index}}</td> // index +1 to begin from 1
<td>{{$value}}</td>
</tr>
@endforeach
</tbody>
尝试以下操作:
<thead>
<th>number</th>
<th>name</th>
</thead>
<tbody>
@foreach ($aaa as $index => $value)
<tr>
<td>{{$index}}</td>
<td>{{$value}}</td>
</tr>
@endforeach
</tbody>
使用 $loop 变量
参考这个 link Loop Variable
从Laravel 5.3开始,这变得容易多了。只需在给定循环中使用 $loop 对象。您可以访问 $loop->index 或 $loop->iteration。检查这个答案:https://laracasts.com/discuss/channels/laravel/count-in-a-blade-foreach-loop-is-there-a-better-way/replies/305861
尝试 $loop->iteration
变量。
`
<thead>
<th>number</th>
<th>name</th>
</thead>
<tbody>
@foreach ($aaa as $value)
<tr>
<td>{{$loop->iteration}}</td>
<td>{{$value}}</td>
</tr>
@endforeach
</tbody>
`
你可以在 Blade 中这样使用它。我希望这会有所帮助。
<thead>
<th>number</th>
<th>name</th>
</thead>
<tbody>
@foreach ($aaa as $index => $value)
<tr>
<td>{{$index +1}}</td>
<td>{{$value}}</td>
</tr>
@endforeach
</tbody>
注意: {{$index +1}}
因为$index
从0
开始
Laravel 8 -
<?php $serial = "1"; ?> - Before @foreach loop
<td>{{ $serial++ }}</td> - Inside @foreach loop
我想要像这样的 table 中的动态行数。
number name
1 Devy
这是我的 Blade 模板。
<thead>
<th>number</th>
<th>name</th>
</thead>
<tbody>
@foreach ($aaa as $value)
<tr>
<td></td>
<td>{{$value->name}}</td>
</tr>
@endforeach
</tbody>
我该怎么做?
使用计数器并在循环中递增其值:
<thead>
<th>number</th>
<th>name</th>
</thead>
<tbody>
<?php $i = 0 ?>
@foreach ($aaa as $value)
<?php $i++ ?>
<tr>
<td>{{ $i}}</td>
<td>{{$value->name}}</td>
</tr>
@endforeach
</tbody>
只需在 foreach()
之前取一个变量,例如 $i=1
。并在 foreach()
结束之前递增 $i
。因此,您可以 echo $i
在所需的 <td></td>
这是正确的:
@foreach ($collection as $index => $element)
{{$index}} - {{$element['name']}}
@endforeach
并且必须使用index+1,因为index是从0开始的。
在视图中使用原始 PHP 不是最佳解决方案。示例:
<tbody>
<?php $i=1; @foreach ($aaa as $value)?>
<tr>
<td><?php echo $i;?></td>
<td><?php {{$value->name}};?></td>
</tr>
<?php $i++;?>
<?php @endforeach ?>
你的情况:
<thead>
<th>number</th>
<th>name</th>
</thead>
<tbody>
@foreach ($aaa as $index => $value)
<tr>
<td>{{$index}}</td> // index +1 to begin from 1
<td>{{$value}}</td>
</tr>
@endforeach
</tbody>
尝试以下操作:
<thead>
<th>number</th>
<th>name</th>
</thead>
<tbody>
@foreach ($aaa as $index => $value)
<tr>
<td>{{$index}}</td>
<td>{{$value}}</td>
</tr>
@endforeach
</tbody>
使用 $loop 变量
参考这个 link Loop Variable
从Laravel 5.3开始,这变得容易多了。只需在给定循环中使用 $loop 对象。您可以访问 $loop->index 或 $loop->iteration。检查这个答案:https://laracasts.com/discuss/channels/laravel/count-in-a-blade-foreach-loop-is-there-a-better-way/replies/305861
尝试 $loop->iteration
变量。
`
<thead>
<th>number</th>
<th>name</th>
</thead>
<tbody>
@foreach ($aaa as $value)
<tr>
<td>{{$loop->iteration}}</td>
<td>{{$value}}</td>
</tr>
@endforeach
</tbody>
`
你可以在 Blade 中这样使用它。我希望这会有所帮助。
<thead>
<th>number</th>
<th>name</th>
</thead>
<tbody>
@foreach ($aaa as $index => $value)
<tr>
<td>{{$index +1}}</td>
<td>{{$value}}</td>
</tr>
@endforeach
</tbody>
注意: {{$index +1}}
因为$index
从0
Laravel 8 -
<?php $serial = "1"; ?> - Before @foreach loop
<td>{{ $serial++ }}</td> - Inside @foreach loop