跳转到内容

Phalcon分页器

注意

所有类都以前缀命名Phalcon

分页器\适配器\AbstractAdapterAbstract

GitHub上的源码

  • 命名空间

    • Phalcon\Paginator\Adapter
  • 使用

    • Phalcon\Paginator\Exception
    • Phalcon\Paginator\Repository
    • Phalcon\Paginator\RepositoryInterface
  • 继承

  • 实现

    • AdapterInterface

Phalcon\分页器\适配器\AbstractAdapter

属性

/**
 * Configuration of paginator
 *
 * @var array
 */
protected $config;

/**
 * Number of rows to show in the paginator. By default is null
 *
 * @var int|null
 */
protected $limitRows;

/**
 * Current page in paginate
 *
 * @var int|null
 */
protected $page;

/**
 * Repository for pagination
 *
 * @var RepositoryInterface
 */
protected $repository;

方法

public function __construct( array $config );
Phalcon\分页器\适配器\AbstractAdapter构造函数

public function getLimit(): int;
获取当前行数限制

public function setCurrentPage( int $page ): AdapterInterface;
设置当前页码

public function setLimit( int $limit ): AdapterInterface;
设置当前行数限制

public function setRepository( RepositoryInterface $repository ): AdapterInterface;
设置当前用于分页的存储库

protected function getRepository( array $properties = null ): RepositoryInterface;
获取当前用于分页的存储库

分页器\适配器\AdapterInterfaceInterface

GitHub上的源码

  • 命名空间

    • Phalcon\Paginator\Adapter
  • 使用

    • Phalcon\Paginator\RepositoryInterface
  • 继承

  • 实现

Phalcon\分页器\AdapterInterface

Phalcon\分页器适配器的接口

方法

public function getLimit(): int;
获取当前行数限制

public function paginate(): RepositoryInterface;
返回用于分页的结果集片段

public function setCurrentPage( int $page );
设置当前页码

public function setLimit( int $limit );
设置当前行数限制

分页器\适配器\Model

GitHub上的源码

  • 命名空间

    • Phalcon\Paginator\Adapter
  • 使用

    • Phalcon\Mvc\ModelInterface
    • Phalcon\Mvc\Model\ResultsetInterface
    • Phalcon\Paginator\Exception
    • Phalcon\Paginator\RepositoryInterface
  • 继承

    AbstractAdapter

  • 实现

Phalcon\分页器\适配器\Model

此适配器允许使用Phalcon\Mvc\Model结果集作为基础进行分页。

use Phalcon\Paginator\Adapter\Model;

$paginator = new Model(
    [
        "model" => Robots::class,
        "limit" => 25,
        "page"  => $currentPage,
    ]
);


$paginator = new Model(
    [
        "model" => Robots::class,
        "parameters" => [
             "columns" => "id, name"
        ],
        "limit" => 12,
        "page"  => $currentPage,
    ]
);


$paginator = new Model(
    [
        "model" => Robots::class,
        "parameters" => [
             "type = :type:",
             "bind" => [
                 "type" => "mechanical"
             ],
             "order" => "name"
        ],
        "limit" => 16,
        "page"  => $currentPage,
    ]
);

$paginator = new Model(
    [
        "model" => Robots::class,
        "parameters" => "(id % 2) = 0",
        "limit" => 8,
        "page"  => $currentPage,
    ]
);


$paginator = new Model(
    [
        "model" => Robots::class,
        "parameters" => [ "(id % 2) = 0" ],
        "limit" => 8,
        "page"  => $currentPage,
    ]
);

$paginate = $paginator->paginate();

方法

public function paginate(): RepositoryInterface;
返回用于分页的结果集片段

分页器\适配器\NativeArray

GitHub上的源码

  • 命名空间

    • Phalcon\Paginator\Adapter
  • 使用

    • Phalcon\Paginator\Exception
    • Phalcon\Paginator\RepositoryInterface
  • 继承

    AbstractAdapter

  • 实现

Phalcon\分页器\适配器\NativeArray

使用PHP数组作为数据源进行分页

use Phalcon\Paginator\Adapter\NativeArray;

$paginator = new NativeArray(
    [
        "data"  => [
            ["id" => 1, "name" => "Artichoke"],
            ["id" => 2, "name" => "Carrots"],
            ["id" => 3, "name" => "Beet"],
            ["id" => 4, "name" => "Lettuce"],
            ["id" => 5, "name" => ""],
        ],
        "limit" => 2,
        "page"  => $currentPage,
    ]
);

方法

public function paginate(): RepositoryInterface;
返回用于分页的结果集片段

分页器\适配器\QueryBuilder

GitHub上的源码

  • 命名空间

    • Phalcon\Paginator\Adapter
  • 使用

    • Phalcon\Db\Enum
    • Phalcon\Mvc\Model\Query\Builder
    • Phalcon\Paginator\Exception
    • Phalcon\Paginator\RepositoryInterface
  • 继承

    AbstractAdapter

  • 实现

Phalcon\分页器\适配器\QueryBuilder

使用PHQL查询生成器作为数据源进行分页

use Phalcon\Paginator\Adapter\QueryBuilder;

$builder = $this->modelsManager->createBuilder()
                ->columns("id, name")
                ->from(Robots::class)
                ->orderBy("name");

$paginator = new QueryBuilder(
    [
        "builder" => $builder,
        "limit"   => 20,
        "page"    => 1,
    ]
);

属性

/**
 * Paginator's data
 *
 * @var Builder
 */
protected $builder;

/**
 * Columns for count query if builder has having
 *
 * @var array|string
 */
protected $columns;

方法

public function __construct( array $config );
Phalcon\分页器\适配器\QueryBuilder

public function getCurrentPage(): int;
获取当前页码

public function getQueryBuilder(): Builder;
获取查询生成器对象

public function paginate(): RepositoryInterface;
返回用于分页的结果集片段

public function setQueryBuilder( Builder $builder ): QueryBuilder;
设置查询生成器对象

分页器\Exception

GitHub上的源码

  • 命名空间

    • Phalcon\Paginator
  • 使用

  • 继承

    \Exception

  • 实现

Phalcon\分页器\Exception

在Phalcon\分页器中抛出的异常将使用此类

分页器\PaginatorFactory

GitHub上的源码

  • 命名空间

    • Phalcon\Paginator
  • 使用

    • Phalcon\Factory\AbstractFactory
    • Phalcon\Paginator\Adapter\AdapterInterface
  • 继承

    AbstractFactory

  • 实现

该文件是Phalcon框架的一部分。

(c) Phalcon团队team@phalcon.io

有关完整的版权和许可信息,请查看随此源代码分发的LICENSE.txt文件。

方法

public function __construct( array $services = [] );
AdapterFactory构造函数。

public function load( mixed $config ): AdapterInterface;
从Config对象创建实例的工厂

use Phalcon\Paginator\PaginatorFactory;

$builder = $this
     ->modelsManager
     ->createBuilder()
     ->columns("id, name")
     ->from(Robots::class)
     ->orderBy("name");

$options = [
    "builder" => $builder,
    "limit"   => 20,
    "page"    => 1,
    "adapter" => "queryBuilder",
];

$paginator = (new PaginatorFactory())->load($options);

public function newInstance( string $name, array $options = [] ): AdapterInterface;
创建适配器的新实例

protected function getExceptionClass(): string;

protected function getServices(): array;
返回可用的适配器

分页器\Repository

GitHub上的源码

  • 命名空间

    • Phalcon\Paginator
  • 使用

    • JsonSerializable
  • 继承

  • 实现

    • JsonSerializable
    • RepositoryInterface

Phalcon\分页器\Repository

当前状态的存储库Phalcon\分页器\适配器Interface::paginate()

属性

/**
 * @var array
 */
protected $aliases;

/**
 * @var array
 */
protected $properties;

方法

public function __get( string $property ): mixed | null;

public function getAliases(): array;

public function getCurrent(): int;

public function getFirst(): int;

public function getItems(): mixed;

public function getLast(): int;

public function getLimit(): int;

public function getNext(): int;

public function getPrevious(): int;

public function getTotalItems(): int;

public function jsonSerialize(): array;
查看jsonSerialize

public function setAliases( array $aliases ): RepositoryInterface;

public function setProperties( array $properties ): RepositoryInterface;

protected function getProperty( string $property, mixed $defaultValue = null ): mixed;
通过名称获取属性值

protected function getRealNameProperty( string $property ): string;
解析属性别名名称

分页器\RepositoryInterfaceInterface

GitHub上的源码

  • 命名空间

    • Phalcon\Paginator
  • 使用

  • 继承

  • 实现

Phalcon\分页器\RepositoryInterface

当前状态Phalcon\分页器\适配器Interface::paginate()的存储库接口

常量

const PROPERTY_CURRENT_PAGE = current;
const PROPERTY_FIRST_PAGE = first;
const PROPERTY_ITEMS = items;
const PROPERTY_LAST_PAGE = last;
const PROPERTY_LIMIT = limit;
const PROPERTY_NEXT_PAGE = next;
const PROPERTY_PREVIOUS_PAGE = previous;
const PROPERTY_TOTAL_ITEMS = total_items;

方法

public function getAliases(): array;
获取属性存储库的别名

public function getCurrent(): int;
获取当前页码

public function getFirst(): int;
获取首页码

public function getItems(): mixed;
获取当前页上的项目

public function getLast(): int;
获取最后一页码

public function getLimit(): int;
获取当前行数限制

public function getNext(): int;
获取下一页码

public function getPrevious(): int;
获取上一页码

public function getTotalItems(): int;
获取总项目数

public function setAliases( array $aliases ): RepositoryInterface;
设置属性存储库的别名

public function setProperties( array $properties ): RepositoryInterface;
设置存储库属性的值

无噪 Logo
无噪文档
25 年 6 月翻译
文档源↗