Phalcon $model-find()->过滤+分页

Phalcon $model-find()->filter + paginate

查看文档,这段代码有效:

$customers = Customers::find();

$numberPage = $this->request->getQuery("page", "int");
$paginator = new Paginator(array(
    "data"  => $customers,
    "limit" => 10,
    "page"  => $numberPage
));

但是这个不行,我真的不明白为什么

$customers = Customers::find()->filter(
  function ($customer) {

    // Return only customers with a valid e-mail
    if (filter_var($customer->email, FILTER_VALIDATE_EMAIL)) {
        return $customer;
    }
  }
);

$numberPage = $this->request->getQuery("page", "int");
$paginator = new Paginator(array(
    "data"  => $customers,
    "limit" => 10,
    "page"  => $numberPage
));

然后,我得到一个 "internal error"。奇怪,$customers 对象似乎改变了。

有什么想法吗?

提前,谢谢。

Model::find() 的结果应该是 Phalcon\Mvc\Model\Resultset 的实例,Phalcon\Paginator\Adapter\Model 的分页器可以接受。

Resultset::filter() method is an array of model instances, what is not an instance of Resultset. To paginate arrays there is Phalcon\Paginator\Adapter\NativeArray paginator 的结果已实施。