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