11

如何使用 laravel 分页增加行号?当我使用分页并转到第 2 页及以上时,它将回到开头。例如我将分页(3)

    <thead>
    <tr>
       <th>No</th>
       <th>Name</th>
    </tr>
    </thead>
    <tbody>
    <?php $i = 1; ?>
    @foreach ($telephone->results as $telp)
    <tr>
       <td>
         {{$i++}}
       </td>
       <td>{{ $telp->name }}</td>                               
    </tr>
    @endforeach
    </tbody>

当我转到第 2 页时,数字将再次从 1 开始。

当我转到第 2 页时,我需要完成它将从 4 开始

4

13 回答 13

21

在 Laravel 5.3 中,您可以使用firstItem()

@foreach ($items as $key => $value)    
  {{ $items->firstItem() + $key }}
@endforeach
于 2016-12-07T15:45:22.963 回答
12

以下适用于 laravel 5.4

<?php $i = ($telephone->currentpage()-1)* $telephone-
>perpage() + 1;?>
@foreach($telephone as $whatever)
<td> {{ $i++ }}</td>
@endforeach

已编辑 以下适用于以上 laravel 5.7

@foreach ($telephone as $key=> $whatever)
  <td>{{ $key+ $telephone->firstItem() }}</td>
@endforeach
于 2017-09-20T07:38:44.743 回答
6

您应该可以使用该getFrom方法获取当前页面结果的起始编号。$i = 1;因此,您应该能够做到这一点,而不是设置。

<?php $i = $telephone->getFrom(); ?>

在 Laravel 3 中没有getFrom方法,所以你需要手动计算。

<?php $i = ($telephone->page - 1) * $telephone->per_page + 1; ?>
于 2013-08-03T02:31:44.913 回答
6

拉拉维尔 5.3

@foreach ($products as $key=>$val)
  {{ ($products->currentpage()-1) * $products->perpage() + $key + 1 }}
@endforeach
于 2016-09-07T08:48:11.650 回答
3

对于 Laravel 6.2:$loop - 以防万一,是 Blade 中的内置实例

@foreach($array as $item)
    <tr class="table-row">
      <td class="site-id">
         {{($array->currentPage() - 1) * $array->perPage() + $loop->iteration}}
      </td>
    </tr>
@endforeach
</table>
于 2019-11-09T21:46:26.797 回答
1

您可以简单地添加以下行

$i = ($telephone->currentpage()-1)* $telephone->perpage();

代替

$i = 1;
于 2017-08-03T06:19:01.520 回答
1
@php($sl = ($yourVariable->perPage() * $yourVariable->currentPage()) - ($yourVariable->perPage() - 1))

@foreach($yourVariable as $item)

<td>{{ $item->key_name }}</td>

.....

@php($sl++)

@endforeach
于 2018-03-20T03:27:51.150 回答
1

在 Laravel 6


@php $i = ($data->currentpage()-1)* $data->perpage() + 1;@endphp

@foreach($data as $banner)
 <tr>
   <td>{{$i}}</td>
   <td><img src="{{ URL::to('/') }}/dist/img/{{$banner->name}}" height="250" width="600"></td>
 </tr>
 @php  $i += 1; @endphp
@endforeach
于 2020-01-15T10:23:46.157 回答
0

或者完全避免 php 标签

 @foreach ($users as $key => $user)
    {{ (Input::get('page', 1) - 1) * $users->getPerPage() + $key + 1 }}
 @endforeach
于 2015-11-12T14:02:10.670 回答
0

如果你使用 Laravel 分页。它工作得很好

后端

public function index()
{
    return view('your.telephone.index', [
        'telephone' => Telephone::paginate(15)
    ]);
}

刀片前端

<td>{{ (($telephone->currentPage() * 10) - 10) + $loop->iteration  }}</td>

并且不要忘记嵌入页面

{{ $telephone->links() }}

为了$loop->iteration

请参阅此处的文档:https ://laravel.com/docs/7.x/blade#the-loop-variable

为了$telephone->currentPage()

请参阅此处的文档:https ://laravel.com/docs/7.x/pagination#paginator-instance-methods

于 2020-05-04T09:04:39.303 回答
0

您可以在控制器中使用它。下面给出的例子

$records = Table::paginate(20);
return view('yourview',compact('records')->with('i', ($request->input('page', 1) - 1) * 20);

注意:分页值必须等于 with() 函数 vlaue

之后,您可以在刀片文件中使用 $i 变量。控制器根据页码计算值并返回刀片

在刀片文件中。在循环内使用

{{ ++$i }}

希望这会帮助你

于 2021-05-28T06:50:40.807 回答
0

Laravel 8++

$loop->iteration可在循环内开箱即用。

{{ ($barangs->currentPage() - 1)  * $barangs->count() + $loop->iteration }}
于 2021-09-14T03:47:37.497 回答
0

我在 Laravel 8 中使用它,访问 $loop 和 links()->paginator:

       @foreach ($users as $user)
            <tr>
                <td class="text-center">{{ ($users->currentPage() - 1)  * $users->links()->paginator->perPage() + $loop->iteration }}</td>
                <td class="text-center">{{$user->name}}</td>
            </tr>
        @endforeach

即使最后一页仅部分填充,它也能正常工作。

也可以使用 $users->perPage() 代替 $users->links()->paginator->perPage()

于 2022-01-06T07:51:51.403 回答