【问题标题】:Get total number of results with pagination通过分页获取结果总数
【发布时间】:2015-04-12 12:41:06
【问题描述】:

我想获取列出所有用户的页面上的用户总数。这个页面应该是分页的。

到目前为止,这是我想出的:

控制器

$users = User::paginate(10);
return View::make('index', compact('users'));

查看:

{{{ count($users) }}}

但这只给了我当前页面的用户数。如果可能的话,我想计算完整的结果集,而无需再次查询数据库。

【问题讨论】:

  • 您不接受我的回答有什么原因吗?如果有什么不工作请告诉我,我可以帮助你:)
  • 哦,抱歉,我一定是在未刷新的页面上再次单击了接受图标。效果很好!

标签: php laravel pagination


【解决方案1】:

在 Laravel 4 中使用:

{{ $users->getTotal() }}

Docs


在 Laravel 5 及以上版本中使用:

{{ $users->total() }}

Docs

【讨论】:

    【解决方案2】:

    控制器

    $products = ProductMaster::paginate(10); //1 page with 10 products
    
    return view('index',compact('products'));
    

    查看

     {{ $products->total() }}   //show total products in your database
    

    【讨论】:

      【解决方案3】:

      获取所有项目总计

      $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
      

      【讨论】:

      • 当添加一个已被接受的五年前问题的答案时,重要的是要指出您的答案所针对的问题的新方面。
      【解决方案4】:

      在 Laravel 8x 上,此数据也会在响应中返回。

      https://laravel.com/docs/8.x/pagination#introduction

      来自分页器的 JSON 将包含元信息,例如总页数、当前页数、最后页数等。结果记录可通过 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...
              }
         ]
      }
      

      【讨论】:

        【解决方案5】:

        总结果 {{ $results->total() }}

        当前页面的第一项 {{ $results->firstItem() }}

        对于当前页面的最后一项 {{ $results->lastItem() }}

        对于当前页面 {{ $results->currentPage() }}

        【讨论】:

          猜你喜欢
          • 2012-04-07
          • 1970-01-01
          • 2015-10-23
          • 1970-01-01
          • 2019-11-12
          • 2017-04-04
          • 1970-01-01
          • 2011-05-06
          • 1970-01-01
          相关资源
          最近更新 更多