显示 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 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

删除“显示 N 个条目中的 1 到 N 个”闪亮 DT

删除“显示N个条目中的1到N”Shiny DT

在表格底部显示页长

警告:mysqli_query() 至少需要 2 个参数,1 个在第 10 行的 C:\wamp64\www\OBJEPRO\dbcrud.php 中给出

公司招了个在腾讯拿35K的人,让我见识到什么才叫测试天花板···

使用 Bootstrap 5 主题搜索字段和显示条目未对齐的 jquery 表