首页 > 解决方案 > Phalcon4 模型分页

问题描述

我曾经在 phalcon3.4 中以下面的方式进行分页,但是,在 phalcon4 中似乎没有明确的方法可以做到这一点,

use Phalcon\Paginator\Adapter\Model;

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

$paginate = $paginator->getPaginate();

标签: phpphalcon

解决方案


它在 Phalcon 4 中发生了一些变化。 *

我想出的最佳解决方案是使用QueryBuilder

$numberPage = $this->request->getQuery('page', 'int', 1);
$criteria   = Criteria::fromInput($this->di, Robots::class, $_GET);
$parameters = $criteria->getParams();

$builder    = $this->modelsManager->createBuilder()->from(Robots::class);

$paginator = new QueryBuilder(
    [
        'builder'    => $builder,
        'parameters' => $parameters,
        'limit'      => 10,
        'page'       => $numberPage,
    ]
);
$paginate  = $paginator->paginate();
//Optional check $paginate->getTotalItems() and flash if nothing was found.

$this->view->page = $paginate;

推荐阅读