4

我在我的特定视图/站点中设置了一个分页,它可以工作。

问题是我有一个 php 计数器:

<?php $count = 0;?> 
   @foreach ($players as $player)
    <?php $count++;?>
    <tr>
    <td>{{ $count }}. </td> 

每当我切换页面时,它都会从 1 开始。

我怎么能改变呢?

4

6 回答 6

17

为了实现这一点,您需要初始化计数器的值:

<?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();
于 2013-08-13T15:49:29.837 回答
1
<?php echo "Displaying ".$data->getFrom() ." - ".$data->getTo(). " of ".number_format($data->getTotal())." result(s)"; ?>
于 2014-07-02T08:38:14.200 回答
1

我们只需要getFromPaginator 实例中的方法就可以从页面中的第一项开始计数。

<?php $count = $players->getFrom(); ?> 
@foreach ($players as $player)
    <tr>
        <td>{{ $count++ }}. </td>
    </tr>
@endforeach
于 2014-08-11T16:47:31.107 回答
0
<?php $count++; ?>
@if($players->getCurrentPage() > 1)
{{ ((($players->getCurrentPage() - 1)* $players->getPerPage()) + $count)}}
@else
{{$count}}
@endif
于 2013-08-13T15:50:38.657 回答
0

你不需要柜台。

得到从0开始的key后,需要加1,然后加当前page-1 *每页item

你可以这样做:

@foreach ($players as $key => $player)
    <tr>
        <td>{{ $key+1+(($players->getCurrentPage()-1)*$players->getPerPage()) }}</td>
    </tr>
@endforeach
于 2014-09-14T10:08:18.377 回答
0

简单优雅:

@foreach ($players as $key => $player)
    <tr>
        <td>{{ $players->getFrom() + $key }}</td>
    </tr>
@endforeach
于 2015-01-02T23:20:34.367 回答