我在我的特定视图/站点中设置了一个分页,它可以工作。
问题是我有一个 php 计数器:
<?php $count = 0;?>
@foreach ($players as $player)
<?php $count++;?>
<tr>
<td>{{ $count }}. </td>
每当我切换页面时,它都会从 1 开始。
我怎么能改变呢?
为了实现这一点,您需要初始化计数器的值:
<?php $count = (($current_page_number - 1) * $items_per_page) + 1; ?>
请注意,我首先1
从当前页面中减去,所以第一页码是0
. 然后我将添加1
到总结果中,因此您的第一项以 开头1
,而不是0
。
Laravel Paginator 为此提供了一个方便的快捷方式:
<?php $count = $players->getFrom() + 1; ?>
@foreach ($players as $player)
...
您可以根据需要使用其他一些:
$players->getCurrentPage();
$players->getLastPage();
$players->getPerPage();
$players->getTotal();
$players->getFrom();
$players->getTo();
<?php echo "Displaying ".$data->getFrom() ." - ".$data->getTo(). " of ".number_format($data->getTotal())." result(s)"; ?>
我们只需要getFrom
Paginator 实例中的方法就可以从页面中的第一项开始计数。
<?php $count = $players->getFrom(); ?>
@foreach ($players as $player)
<tr>
<td>{{ $count++ }}. </td>
</tr>
@endforeach
<?php $count++; ?>
@if($players->getCurrentPage() > 1)
{{ ((($players->getCurrentPage() - 1)* $players->getPerPage()) + $count)}}
@else
{{$count}}
@endif
你不需要柜台。
得到从0开始的key后,需要加1,然后加当前page-1 *每页item
你可以这样做:
@foreach ($players as $key => $player)
<tr>
<td>{{ $key+1+(($players->getCurrentPage()-1)*$players->getPerPage()) }}</td>
</tr>
@endforeach
简单优雅:
@foreach ($players as $key => $player)
<tr>
<td>{{ $players->getFrom() + $key }}</td>
</tr>
@endforeach