aledefreitas / lv-loadmorepagination
Laravel 的 Load More Pagination。允许加载一定数量的初始条目,后续页面可以加载不同数量的条目
0.1.0
2018-02-01 10:18 UTC
Requires
- php: >=5.4.0
- illuminate/database: ~5.0
- illuminate/pagination: ~5.0
- illuminate/support: ~5.0
Requires (Dev)
- phpunit/phpunit: ^5.3
This package is auto-updated.
Last update: 2024-09-14 00:44:16 UTC
README
一个提供 LoadMorePagination 特性的包,您可以使用它用初始数量的条目来分页模型结果,然后后续页面使用不同数量的条目。
此包不实现任何分页器接口或类似的东西,它只是返回与分页器类似的数组,包含诸如 last_page、current_page、data 等常用信息。
用法
要安装此包,请执行以下操作
composer require vitorf7/lv-loadmorepagination
安装完成后,您可以使用两种方式:要么将其导入到您的 Eloquent 模型中,要么在控制器、存储库等中使用它。
此包初始加载9个项目,后续加载3个项目。
在模型中
<?php namespace App; use VitorF7\LoadMorePagination\LoadMorePagination; class Post extends Model { use LoadMorePagination; } // in a controller action or something you can use it like so Post::paginateLoadMore(); // Loads 9 on first page and 3 every page after that Post::paginateLoadMore(8, 4); // Loads 8 on first page and 4 every page after that Post::paginateLoadMore(4, 4); // Loads 4 on first page and 4 every page after that. However at this point you could just simply use Post::paginate(4). This package is better used when you need to load different amount of items from the first page // You can use it after you do an eager load of relationship too. At least simple loads for now as it has not been tested with something more complex Post::with('categories')->paginateLoadMore();
如果您想在控制器、存储库等中使用它,您需要传递3个参数。
- 第一个参数是初始加载的项目数
- 第二个参数是后续加载的项目数
- 第三个参数是要分页的模型
如下所示
<?php namespace App\Http\Controllers; use App\Http\Controllers\Controller; use VitorF7\LoadMorePagination\LoadMorePagination; class PostsController extends Controller { use LoadMorePagination; public function index() { $posts = $this->paginatedLoadMore(9, 3, new Post); return view('posts.index', compact('posts')); } }
如果您没有传递模型,您将收到一个 VitorF7\LoadMorePagination\ModelClassRequiredException
。