我正在使用laravel 5.6显示数据,但它并没有完美运行。
此代码显示第一页显示第0至10个结果,共35页显示最后一页显示30至40的35
$page = $request->has('page') ? $request->get('page') : 1;
$total = UserAdmin::count();
$perPage = 10;
$showingTotal = $page * $perPage;
$currentShowing = $showingTotal>$total ? $total : $showingTotal;
$showingStarted = $showingTotal - $perPage;
$tableInfo = "Showing $showingStarted to $showingTotal of $total";
我想在第一页显示35条记录中的1到10条,将显示最后一页显示35条记录中的30到35条
答案 0 :(得分:1)
你应该试试这个:
请在您的查询中使用paginate,并尝试:
$perPage = 10;
$rsltUsers = UserAdmin::paginate($perPage);
答案 1 :(得分:1)
$tableInfo = "Showing $showingStarted to $currentShowing of $total";
使用指定的$ showingTotal而不是$ currentShowing
答案 2 :(得分:1)
为什么可以通过直接对象成员$shops->firstItem()
和$shops->lastItem()
获得如此复杂的逻辑
此外,如果总共有 9 条记录,它会在最后一页显示错误显示 9 条记录中的 6 到 10 条
示例:
向{{ $shops->firstItem() }}
显示{{ $shops->lastItem() }}
共 {{$shops->total()}}
个条目
答案 3 :(得分:0)
这是因为您的$showingTotal
是固定值,从$page * $perPage
计算得出。
快速而肮脏的解决方案是添加一行:
if ($showingTotal > $total) {
$showingTotal = $total;
}
但是请考虑使用Laravel中提供的正确分页。 $showingTotal
应该动态更新,而不是简单地从固定变量计算。