joshbrw / laravel-pagination-specification
用于Laravel中一致分页的包。
v0.1.9
2018-01-29 15:17 UTC
Requires
- php: ^7
- laravel/framework: 5.4.*|5.5.*
Requires (Dev)
- phpunit/phpunit: ^6.2
README
此包的主要目的是提供一个一致的对象,该对象表示在分页时必须考虑的所有主要值(即:当前页、每页数量、URL的附加内容)。
然后可以将此对象传递给方法,并用于更简洁的方法参数。
安装
composer require joshbrw/laravel-pagination-specification
- 将以下服务提供者添加到您的
config/app.php
中的provider
Joshbrw\PaginationSpecification\PaginationSpecificationServiceProvider::class
- 可选地发布配置并更改默认的每页数量;
php artisan vendor:publish --provider="Joshbrw\PaginationSpecification\PaginationSpecificationServiceProvider"
使用方法
该类绑定到容器中的 Joshbrw\PaginationSpecification\PaginationSpecification
接口,如果需要可以覆盖/装饰。
例如,注入到Controller方法中
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\View\View; use Joshbrw\PaginationSpecification\PaginationSpecification; class UserController extends Controller { public function index( Request $request, PaginationSpecification $paginationSpecification, UserRepository $userRepository ): View { // Reads the `per_page` and `page` values from the request $paginationSpecification->fromRequest($request); // Set how many items we want per page $paginationSpecification->setPerPage(30); // This can now be passed around to other methods, which can typehint it as a dependency return $userRepository->get($paginationSpecification); } }