显示 35 个条目中的 1 到 10 个在 laravel 中不起作用
Posted
技术标签:
【中文标题】显示 35 个条目中的 1 到 10 个在 laravel 中不起作用【英文标题】:Showing 1 to 10 of 35 entries not working in laravel 【发布时间】:2018-11-01 01:22:52 【问题描述】:我正在使用 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 个
【问题讨论】:
使用分页:laravel.com/docs/5.6/pagination 您的预期结果是什么? 我想在第一页显示 35 个条目中的 1 到 10 个,最后一页将显示 35 个条目中的 30 到 35 个。但它显示 Showing 0 to 10 of 35 和最后一页显示 Showing 30 to 40 of 35 @Matadeleo 您的预期不正确。最后一页应显示 31 到 35。(每个页面范围为 1 到 10、11 到 20、21 到 30、31 到 35) 是的,我的预期不正确。我明白我的问题。请你帮我如何显示这个 1 到 10、11 到 20、21 到 30、31 到 35。@RichardAtHome 【参考方案1】:$tableInfo = "Showing $showingStarted to $currentShowing of $total";
使用指定的 $showingTotal 而不是 $currentShowing
【讨论】:
【参考方案2】:你应该试试这个:
请在您的查询中使用 paginate 并尝试如下:
$perPage = 10;
$rsltUsers = UserAdmin::paginate($perPage);
【讨论】:
【参考方案3】:为什么可以通过直接对象成员$shops->firstItem()
和$shops->lastItem()
获得如此复杂的逻辑
另外,如果总共有 9 条记录,它会在最后一页显示错误,显示总共 9 条记录中的 6 到 10 条
示例:
显示 $shops->firstItem()
到 $shops->lastItem()
$shops->total()
个条目的总数
【讨论】:
【参考方案4】:这是因为您的$showingTotal
是一个固定值,由$page * $perPage
计算得出。
一个快速而肮脏的解决方案是添加一行:
if ($showingTotal > $total)
$showingTotal = $total;
但是,请考虑使用 Laravel 中提供的正确分页。 $showingTotal
应该是动态更新的,而不是简单地从固定变量中计算出来的。
【讨论】:
以上是关于显示 35 个条目中的 1 到 10 个在 laravel 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章
警告:mysqli_query() 至少需要 2 个参数,1 个在第 10 行的 C:\wamp64\www\OBJEPRO\dbcrud.php 中给出