CakePHP 3中自定义数组的分页

时间:2015-10-14 04:47:11

标签: php pagination cakephp-3.0 paginator cakephp-3.1

我有自定义数组,如:

[business] => Array
(
    [55] => Array
    (
        [id] => 1
        [name] => abc
        [contact] => 1325467897
    ),
    [96] => Array
    (
        [id] => 5
        [name] => xyz
        [contact] => 9876543210
    )

)

此数组派生自条件(if-else)多个查询。所以,我只想在数组上添加分页。有人可以建议我如何使用CakePHP 3的标准分页器在这种类型的数组上添加自定义分页。

1 个答案:

答案 0 :(得分:-2)

PaginatorComponent可以采用Cake\ORM\Query作为分页的东西,所以我建议将编译后的查询对象传递给分页器。

因此,在您的控制器中,您可以执行以下操作。

public function example()
{
    $this->paginate = ['limit' => 5];

    $query = $this->Examples->find();

    if ($something === 'foo') {
        $query->where(['foo' => $something]);
    }

    if ($wtfbbq) {
        $query->contain(['Wtfs', 'Barbeques']);
    }

    $results = $this->paginate($query);
}

这将生成内置分页的Cake\ORM\Query。然后您可以根据需要调整分页参数by checking the book page on the Paginator