Laravel 5.1分页计数

3
我正在使用Laravel的分页器来每页显示100个结果。在每行前面,我目前显示数据库字段的ID。然而,我想要显示计数。

我在stackoverflow上找到了一些解决Laravel 4问题的帖子

他们说,你应该这样解决

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

或者像这样
<?php $count = $players->getFrom() + 1; ?>
@foreach ($players as $player)
    ...

这里的问题是,Laravel 5.1不再有getForm方法。升级指南建议用firstItem替换getFrom,我已经这样做了。不幸的是,我没有得到正确的数字。
我尝试了以下方式:
<?php $count = $pages->firstItem() + 1 ?>
@foreach ($pages as $page)
    @include('pages.singlepagebasic')
@endforeach

就像这样

{{ $count = $pages->firstItem() }}
@foreach ($pages as $page)
    @include('pages.singlepagebasic')
@endforeach

//pages.singlebasic.blade.php

{{ $count ++ }}

但是我的网站总是只显示数字“2”,而不是递增。我该如何实现?
4个回答

3

只需使用此代码即可获取页面数量

$players->lastPage()

或者使用此方法获取项目数量

$players->total()

如果您想让每个条目计数,请不要使用 {{ $count++ }} ,因为它会打印出数据。相反,可以使用以下方式:
<?php $count++; ?>
{{ $count }}

这不是我想要的。我想要当前条目的编号。假设我有100个项目。然后我想对这些项目进行foreach循环,并在旁边显示当前编号。所以是1、2、3、4、5等。 - Musterknabe
我编辑了我的问题。问题在于你试图ECHO $count ++,这就是{{}}的作用。 - Eimantas Gabrielius

2

首先使用paginate(100)方法获取100个玩家,然后可以通过以下方式获取索引或计数:

<?php $count = 1; ?> 
@foreach ($players as $player)
    <tr>
        <td>{{$players ->perPage()*($players->currentPage()-1)+$count}}</td>
    </tr>
<?php $count++; ?>
    @endforeach

这里 {{$players ->perPage()*($players->currentPage()-1)+$count}} 将在第一页上打印索引或计数,例如 1 到 100,在下一页上打印 101 到 200,以此类推。


1

如果你想使用 Laravel 5 的循环迭代

`@foreach ($players as $player)
    <tr>
        <td>{{$players->perPage()*($players->currentPage()-1)+$loop->iteration}}</td>
    </tr>
@endforeach`

希望这有所帮助。

0

我以前为了避免在4.2版的Blade模板中使用PHP标记,做过类似于这样的事情

@foreach ($players as $key => $player)
<tr>
    <td>{{ (Input::get('page', 1) - 1) * $players->getPerPage() + $key + 1 }}. </td>
</tr>
@endforeach

这有点奇怪,但它会起作用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接