How to handle pagination with KnpPaginator and Solarium?

1.1k Views Asked by At

I'm trying to paginate with Symfony2, KnpPaginator and Solarium. There is no error returned nor pagination shown. {{ pagination.getTotalItemCount }} return "2", instead of much more. Actually, it count the number of argument in "array($client,$select)".

Any idea ?

From the controller :

           $my_query = 'manufacturer:'.$pays.' AND description:*inclus* AND terms:[* TO *]';
            // Create new solarium instance
            $client = $this->get('solarium.client');
            $select = $client->createSelect();
            //$select->setRows(15);
            $select->setQuery($my_query);
            $select->addSort('price', $select::SORT_ASC);
            if (isset($start))
            {
                    $select->setStart($start);
            }
            $resultsolr = $client->select($select);
            $nb_result =  $resultsolr->getNumFound();

            // Nav facettes
            $query = $client->createSelect();
            $query->createFilterQuery('inclus')->setQuery('description:*inclus* AND terms:[* TO *]');
            $facetSet = $query->getFacetSet();
            $facetSet->createFacetField('pays')->setField('manufacturer')->setMincount(1);
            $resultset = $client->select($query);
            $facet = $resultset->getFacetSet()->getFacet('pays');

            //Pagination
            $paginator  = $this->get('knp_paginator');
            $pagination = $paginator->paginate(array($client,$select),  $this->get('request')->query->get('page', 1)/*page number*/,
    20/*limit per page*/);

            return $this->render('TravelTravelBundle:Default:sejours_par_pays.html.twig',
                            array('resultsolr' => $resultsolr,
                                    'pays' => $pays,
                                    'facet' => $facet,
                                    'nb_result' => $nb_result,
                                    'pagination' => $pagination));
    }

From the view :

<div class="count">
    {{ pagination.getTotalItemCount }}
</div>

edit : I've found the answer (in French) : http://inside.inclusive.fr/2013/09/knppaginatorbundle-et-solarium/

0

There are 0 best solutions below