Exemple #1
1
 public function setUp()
 {
     $this->queryConfig = new QueryConfig();
     $this->queryConfig->setLimit(5)->setSelect(array('t.a', 't.b', 't.c'))->setPage(2)->setOrderBy(array('t.d' => true, 't.e' => false))->addParameter('query', '%xxx%')->getConstraints()->add('LOWER(t.a) LIKE :query')->add('LOWER(t.c) LIKE :query');
     $this->queryBuilder = new QueryBuilderMock();
     $this->queryBuilder->from('Table', 't');
     if ($this->queryConfig->getConstraints()->count() > 0) {
         $this->queryBuilder->andWhere($this->queryConfig->getConstraints());
     }
     if (count($this->queryConfig->getParameters()) > 0) {
         $this->queryBuilder->setParameters($this->queryConfig->getParameters());
     }
     $this->dataProvider = new DataProvider();
 }
Exemple #2
0
 /**
  * {@inheritdoc}
  */
 public function find(QueryBuilder $queryBuilder, QueryConfigInterface $queryConfig)
 {
     /* Add where clauses if there is any query search filter */
     if ($queryConfig->getConstraints()->count() > 0) {
         $queryBuilder->andWhere($queryConfig->getConstraints());
     }
     if (count($queryConfig->getParameters()) > 0) {
         foreach ($queryConfig->getParameters() as $key => $value) {
             $queryBuilder->setParameter($key, $value);
         }
     }
     $rows = $this->getRows($queryBuilder, $queryConfig);
     $count = 0;
     if ($queryConfig->getLimit() > 0 && count($rows) > 0) {
         if (count($rows) === $queryConfig->getLimit() || $queryConfig->getPage() > 1) {
             $count = $this->getCount($queryBuilder, $queryConfig);
         }
     }
     return new QueryResult($rows, $count);
 }