コード例 #1
1
ファイル: SearchTest.php プロジェクト: code-community/search
 public function testGetGroupedFieldFilters()
 {
     $search = new Search();
     $f1 = (new FieldFilter())->setFieldId(1)->setField('email')->setType(FieldFilter::EQUAL_TYPE)->setQuery('*****@*****.**');
     $search->addFieldFilter($f1);
     $f2 = (new FieldFilter())->setFieldId(2)->setField('email')->setType(FieldFilter::LEFT_LIKE_TYPE)->setQuery('rafael')->setOr('1:0');
     $search->addFieldFilter($f2);
     $f3 = (new FieldFilter())->setFieldId(3)->setField('email')->setType(FieldFilter::RIGHT_LIKE_TYPE)->setAnd('2:0');
     $search->addFieldFilter($f3);
     $groupings = $search->getGroupedFieldFilters();
     // Desired Structure [[$f1, [$f2, $f3]]]
     $this->assertEquals($f1, $groupings[0][0]);
     $this->assertEquals($f2, $groupings[0][1][0]);
     $this->assertEquals($f3, $groupings[0][1][1]);
 }
コード例 #2
1
ファイル: SearchAware.php プロジェクト: code-community/search
 public function paginateQuery(Query $query, Search $search)
 {
     $results = $query->getResult();
     $limit = $search->getListAll() ? count($results) ? count($results) : 1 : $search->getMaxPerPage();
     $adapter = new DoctrineORMAdapter($query);
     $paginator = new Pagerfanta($adapter);
     $paginator->setMaxPerPage($limit);
     $paginator->setCurrentPage($search->getPage());
     $paginator->getCurrentPageResults();
     // Just to cache the consult
     $paginator->getNbResults();
     // Just to cache the results
     return $paginator;
 }