通过分页获取结果总数

Get total number of results with pagination

我想获得列出所有用户的页面上的用户总数。此页面应分页。

到目前为止,这是我想出的:

控制器

$users = User::paginate(10);
return View::make('index', compact('users'));

查看:

{{{ count($users) }}}

但这只给我当前页面的用户数。如果可能的话,我想计算完整的结果集,而无需再次查询数据库。

在Laravel 4中使用:

{{ $users->getTotal() }}

Docs


在Laravel 5及以上使用:

{{ $users->total() }}

Docs

控制器

$products = ProductMaster::paginate(10); //1 page with 10 products

return view('index',compact('products'));

查看

 {{ $products->total() }}   //show total products in your database

获取所有项目总计

$paginator->total() 确定数据存储中匹配项的总数。 (使用 simplePaginate 时不可用)。

获取当前页面总计

$paginator->count()获取当前页面的项目数。

例子

控制器

$users = User::paginate(10); //1 page with 10 products
return view('users', compact("users"));

查看:

{{ $users->total() }} //show total users in your database

On Laravel 8x 此数据也在响应中返回。

https://laravel.com/docs/8.x/pagination#introduction

分页器中的 JSON 将包含总计、current_page、last_page 等元信息。结果记录可通过 JSON 数组中的数据键获得。这是通过从路由返回分页器实例创建的 JSON 示例:

{
   "total": 50,
   "per_page": 15,
   "current_page": 1,
   "last_page": 4,
   "first_page_url": "http://laravel.app?page=1",
   "last_page_url": "http://laravel.app?page=4",
   "next_page_url": "http://laravel.app?page=2",
   "prev_page_url": null,
   "path": "http://laravel.app",
   "from": 1,
   "to": 15,
   "data":[
        {
            // Record...
        },
        {
            // Record...
        }
   ]
}

总结果 {{ $results->total() }}

对于当前页面的第一项 {{ $results->firstItem() }}

当前页面的最后一项{{ $results->lastItem() }}

当前页面{{ $results->currentPage() }}