将序列号与分页一起使用

Using serial number with paginate

提问人:micky 提问时间:5/31/2016 最后编辑:Sagar Ahujamicky 更新时间:9/14/2022 访问量:8257

问:

我正在尝试使用变量检索刀片模板中的序列号:i

    <?php $i=0;?>
    @foreach ($lists as $li)
    <tr><td><?php $i++;?>{{$i}}</td><td>{{$li->Name}}</td><td>{{$li->Telephone}}
    </td><td>{{$li->mobile}}</td>
    @endforeach
    {!! $lists->render() !!}

但我在控制器中使用分页:

$lists=telephone::orderBy('name')->simplePaginate(10);

所以,第一页的序列号是可以的。但是对于第二页,再次从 1 开始。i

PHP Laravel LaRavel-5

评论

0赞 Murad Hasan 5/31/2016
哟 需要将页面大小乘以 。$i

答:

8赞 Doom5 5/31/2016 #1

更新:

下面的解决方案从 0 开始,而不是从第一页的 1 开始。从 1 开始:

$i = ($lists->perPage() * ($lists->currentPage() - 1)) + 1;

尝试设置为$i$lists->perPage() * ($lists->currentPage() - 1)

$i = $lists->perPage() * ($lists->currentPage() - 1);

评论

0赞 Murad Hasan 5/31/2016
这就是我的意思。
0赞 Milan Bastola 8/22/2021
但问题是,数字是从 0 开始的,而不是从 1 开始的。如何解决?
1赞 Doom5 8/23/2021
@MilanBastola 一种方法是在上述操作的结果上加 1:$i = ($lists->perPage() * ($lists->currentPage() - 1)) + 1;
0赞 CodeWithArefin 11/4/2021
这个对我来说非常有效:$i = $lists->perPage() * ($lists->currentPage() - 1) + 1;
0赞 Siraj Ali 1/11/2022
关于 s.no 的问题,意味着从 1 开始,依此类推。您的解决方案只是在每页中重复从 1 到 10 的相同计数,这不是一个合适的解决方案
8赞 Anuj Shrestha 11/11/2019 #2

您还可以使用

@foreach($lists as $index => $list)
   {{$index + $lists->firstItem()}} //S.N
@endforeach

$index是该结果集中的行号,$lists->firstItem() 将获取分页结果中第一项的结果号。

0赞 Miraj Khandaker 9/14/2022 #3

如果您使用的是 laravel paginate/simplePaginate,您可以使用 laravel 提供的函数获取第一个项目编号,如下所示代码。

<?php $i = $lists->firstItem(); ?>