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 的结果已实施。
查看文档,这段代码有效:
$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 的结果已实施。