Pagination Phalcon:find()+分页器
我有一个MySQL数据库和一个表。任务是设置一个方法,该方法将接收2个参数?user\u id=…&action\u id。。。并搜索与这两个字段或其中一个字段匹配的记录(如果只设置了一个字段)?user_id=…,然后对它们进行分页并将它们发送到操作视图。我一周前才开始学习Phalcon,在这里和那里做了一些研究,阅读了文档,但仍然没有意识到我可以如何做到这一点。 到目前为止我所做的:Pagination Phalcon:find()+分页器,pagination,phalcon,paginator,Pagination,Phalcon,Paginator,我有一个MySQL数据库和一个表。任务是设置一个方法,该方法将接收2个参数?user\u id=…&action\u id。。。并搜索与这两个字段或其中一个字段匹配的记录(如果只设置了一个字段)?user_id=…,然后对它们进行分页并将它们发送到操作视图。我一周前才开始学习Phalcon,在这里和那里做了一些研究,阅读了文档,但仍然没有意识到我可以如何做到这一点。 到目前为止我所做的: public function searchAction() { $userID = $this-
public function searchAction()
{
$userID = $this->request->get("user_id", "int", 0);
$actionID = $this->request->get("action_id", "int", 0);
$currentPage = 1;
$currentPage = (int) $_GET["page"];
$parameters = array(
'user_id' => $userID,
'action_id' => $actionID
);
$o = History::find($parameters);
$paginator = new Paginator(array(
"data" => $o,
"limit" => 10,
"page" => $currentPage
));
$page = $paginator->getPaginate();
$this->view->setVar("page", $page);
}
分页在某种程度上起作用,但搜索却不起作用,为什么?指的是官方文档
参数数组的索引必须与条件字符串中占位符的数量匹配。方法find或findFirst中的第一个参数必须是一个字符串,以便为查询设置条件 在您的情况下,您可以这样搜索:
$o = History::find('user_id = "'.$userID.'" AND action_id = "'.$action_id.'"');
但是,如果要添加更多参数,则需要传递数组,并且第一个元素必须包含搜索条件:
$o = History::find(array(
'user_id = "'.$userID.'" AND action_id = "'.$action_id.'"',
'limit' => 10,
'order' => 'user_id ASC'
));
$o = History::find(array(
'user_id = "'.$userID.'" AND action_id = "'.$action_id.'"',
'limit' => 10,
'order' => 'user_id ASC'
));