我想得到列出所有用户的页面上的用户总数。此页应分页。
到目前为止,这就是我所想到的:
控制器
$users = User::paginate(10);
return View::make('index', compact('users'));
视图:
{{{ count($users) }}}
但这只给了我当前页面的用户数。如果可能的话,我想计算完整的结果集,而不需要下次查询数据库。
在Laravel 4中使用:
{{ $users->getTotal() }}
文档
在Laravel 5及以上使用:
{{ $users->total() }}
单据
控制器
$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
// Assuming you have a paginated collection named $users
$total = $users->total();
$currentPage = $users->currentPage();
$perPage = $users->perPage();
$from = ($currentPage - 1) * $perPage + 1;
$to = min($currentPage * $perPage, $total);
echo "Showing {$from} to {$to} of {$total} entries";
在Laravel 8x上,此数据也会在响应中返回。
https://laravel.com/docs/8.x/pagination#introduction
分页器中的JSON将包括诸如total、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()}}