Cioè mi funziona tutto tranne l'impaginazione,
ovvero faccio sumbit del mio form di ricerca, vedo i risultati in una tabella ma quando mi sposto di pagina con il pagination ritorno al form.
Codice: Seleziona tutto
/**
* @Route("/searchAction/{page}", name="dataset_search", defaults={"page" = 1})
* @Route("/page/{page}", name="dataset_page_index", requirements={"page" : "\d+"})
*
*/
public function searchAction(Request $request, $page){
$form = $this->createFormBuilder()
->add('lat', NumberType::class, array(
'label' => 'latitude',
'required' => false,
))
->add('lon', NumberType::class, array(
'label' => 'longitude',
'required' => false,
))
->add('alt', NumberType::class, array(
'label' => 'altitude',
'required' => false,
))
->add('range', ChoiceType::class, array(
'label' => 'range',
'choices' => array(
'1' => '1Km',
'2Km' => 2,
'3Km' => 3,
'5Km' => 5,
'10Km' => 10,
)))
->add('dataset_category',EntityType::class,array(
'class' => 'AppBundle\Entity\DatasetCategory',
'choice_label' => 'name',
'expanded' => false,
'multiple' => false,
'label' => 'dataset_category',
'required' => false,
'empty_data' => null
))
->add('acquisition_start',DateTimePickerType::class,array(
'label' => 'label.acquisition_start',
'required' => false,
))
->add('acquisition_end',DateTimePickerType::class,array(
'label' => 'label.acquisition_end',
'required' => false,
))
->getForm();
$form->handleRequest($request);
$em = $this->getDoctrine()->getManager();
$qb = $em->createQueryBuilder();
if ($form->isSubmitted() && $form->isValid()) {
......ESECUZIONE QUERY.
$query = $qb->getQuery();
$paginator = $this->get('knp_paginator');
$pagination = $paginator->paginate(
$query,
$request->query->getInt('page', $page),
1
);
return $this->render('dataset/result.html.twig', array('pagination' => $pagination));
}
// data is an array with "name", "email", and "message" keys
$data = $form->getData();
return $this->render('dataset/search.html.twig', array(
'search_form' => $form->createView(),
));
}