joshbrw/laravel-pagination-specification

用于Laravel中一致分页的包。

v0.1.9 2018-01-29 15:17 UTC

This package is auto-updated.

Last update: 2024-08-28 22:47:29 UTC


README

此包的主要目的是提供一个一致的对象,该对象表示在分页时必须考虑的所有主要值(即:当前页、每页数量、URL的附加内容)。

然后可以将此对象传递给方法,并用于更简洁的方法参数。

安装

  1. composer require joshbrw/laravel-pagination-specification
  2. 将以下服务提供者添加到您的 config/app.php 中的 provider
       Joshbrw\PaginationSpecification\PaginationSpecificationServiceProvider::class
  3. 可选地发布配置并更改默认的每页数量;
    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);
    }
}