public function testCreateDataSet_pagination() { $request = $this->getBaseRequest(); $request->displayStart = 100; $request->displayLength = 10; $dataSet = $this->dataSource->createDataSet($request); $this->assertEquals(100, $this->qb->getFirstResult()); $this->assertEquals(10, $this->qb->getMaxResults()); }
/** * It is possible to use query builder with additional columns. * In this case, only item at index [0] is returned, because * it should be an entity object. * @return array */ public function getData() { $data = array(); // Paginator is better if the query uses ManyToMany associations $result = $this->qb->getMaxResults() !== NULL || $this->qb->getFirstResult() !== NULL ? new Paginator($this->getQuery()) : $this->qb->getQuery()->getResult(); foreach ($result as $item) { // Return only entity itself $data[] = is_array($item) ? $item[0] : $item; } return $data; }
/** * It is possible to use query builder with additional columns. * In this case, only item at index [0] is returned, because * it should be an entity object. * @return array */ public function getData() { // Paginator is better if the query uses ManyToMany associations $usePaginator = $this->qb->getMaxResults() !== NULL || $this->qb->getFirstResult() !== NULL; $data = array(); if ($usePaginator) { $paginator = new Paginator($this->getQuery()); // Convert paginator to the array foreach ($paginator as $result) { // Return only entity itself $data[] = is_array($result) ? $result[0] : $result; } } else { foreach ($this->qb->getQuery()->getResult() as $result) { // Return only entity itself $data[] = is_array($result) ? $result[0] : $result; } } return $data; }
/** * {@inheritdoc} */ public function getFirstResult() { return $this->queryBuilder->getFirstResult(); }
/** * @param type $select string podawany do $qb->select np $qb->select('count(*)'[, ...]) * Nalezy podać tylko jeden parametr!!!!!!!!!!!!!!!! */ public function getCount() { $offset = $this->qb->getFirstResult(); $this->qb->setFirstResult(null); $tmp = call_user_func_array(array($this->qb, 'select'), func_get_args()); $return = $tmp->getQuery()->getSingleScalarResult(); $this->qb->setFirstResult($offset); return $return; }