/** * Query with pagination * * @param string $sql Query * @param bool|DbPaginator $pager Pagination object * * @todo Add Pager type hints * @return array|bool */ public function query($sql, $pager = false) { if ($pager instanceof DbPaginator) { $sql = $this->builder->setPage($sql, $pager); } $result = Db::rows($sql); if (empty($result)) { return false; } if ($pager instanceof DbPaginator) { $pager->calcMaxPages(); } return $result; }
/** * @covers Veles\Model\QueryBuilder::setPage */ public function testSetPage() { $pager = new DbPaginator(''); $news = new News(); $expected = ' SELECT SQL_CALC_FOUND_ROWS "id", "title", "content", "author" FROM "news" LIMIT 0, 5'; $sql = $this->object->find($news, new DbFilter()); $result = $this->object->setPage($sql, $pager); $msg = 'QueryBuilder::setPage returns wrong result!'; $this->assertSame($expected, $result, $msg); }