sammyt/paginate-collection

允许Laravel用户通过全局辅助方法分页集合。目前Laravel只允许使用原生查询构建器分页。

v1.0.1 2021-10-01 22:52 UTC

This package is auto-updated.

Last update: 2024-09-29 05:56:56 UTC


README

描述

允许Laravel用户通过全局辅助方法分页集合。目前Laravel只允许使用原生查询构建器分页。

用法

作为一个简单的内联示例,我使用以下命令创建了一个新的Laravel项目: laravel new MyProject

MyProject

  1. 设置一个 .env 文件,连接到本地数据库。
  2. 运行内置迁移,确保已创建 users 表。
  3. 使用 tinkerusers 表中创建一些测试用户,或者手动在您的数据库中创建它们

要测试,您可以调用此全局方法并传入您的集合。其他方法参数是可选的。接受的参数包括

  1. $collection => 必需
  2. $perPage => 默认为15,但也接受 int
  3. $currentPage => 默认为null,但也接受 int
  4. $options => 您希望传递的任何其他选项

以下是如何使用 paginate_collection 全局辅助方法的一个示例用例。

按照上述步骤1-3,然后在 web.php 中创建一个路由,该路由具有一个回调 function,允许您返回一个集合进行测试

Route::get('/users', function() {
   $userCollection = User::all();

   $paginatedUsersCollection = paginate_collection(
       $userCollection,
       10,
       null
   );
   
   dd($paginatedUsersCollection);
});

输出

Illuminate\Pagination\LengthAwarePaginator {#251 ▼
  #total: 2
  #lastPage: 1
  #items: Illuminate\Support\Collection {#265 ▶}
  #perPage: 10
  #currentPage: 1
  #path: "/"
  #query: []
  #fragment: null
  #pageName: "page"
  +onEachSide: 3
  #options: []
}

如您所见,它使用 LengthAwarePaginator 在幕后,并且您的集合现在已分页。