【问题标题】:Showing 1 to 10 of 35 entries not working in laravel显示 35 个条目中的 1 到 10 个在 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 个

【问题讨论】:

  • 您的预期结果是什么?
  • 我想在第一页显示 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

标签: php laravel dynamic-data-display


【解决方案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 应该是动态更新的,而不是简单地从固定变量中计算出来的。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-06-05
          • 2019-01-14
          • 2021-08-18
          • 2020-05-16
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多