Laravel 5.7分页集合如何获取数据起始与结束位置?
当然可行!Laravel分页自带这些功能
完全没问题,Laravel的分页实例已经帮你封装好了获取起始/结束位置的方法,不用自己手动去算页码×每页条数这种容易出错的逻辑~
首先,你得到的分页对象(比如$posts = Post::where('active', 1)->paginate(10);)是LengthAwarePaginator类的实例,它提供了几个直接能用的方法:
firstItem():返回当前页第一条数据的序号(比如第2页就是11)lastItem():返回当前页最后一条数据的序号(比如第2页就是20)total():返回符合条件的总数据条数(比如284)
直接用这些方法就能拼接出你要的文本了,举个例子:
如果是在控制器里拼接:
$posts = Post::where('active', 1)->paginate(10); $paginationText = "产品 {$posts->firstItem()}-{$posts->lastItem()},共{$posts->total()}件";
如果是在Blade模板里直接渲染:
产品 {{ $posts->firstItem() }}-{{ $posts->lastItem() }},共{{ $posts->total() }}件
而且特别贴心的是,如果当前页是最后一页(比如总共有284条,每页10条,最后一页是第29页),lastItem()会自动返回284而不是290,完全不用你额外判断边界情况~
内容的提问来源于stack exchange,提问作者Čamo
相关产品推荐
相关产品推荐

