示例#1
0
 /**
  * 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);
    }