0

I'd like the paging link render by pagerfanta be submitted with the form data. This is to consider the data entered in the search form.

A simple pagination link will not allow me to navigate in my search result. Any help please ?

controller

/**
 * @Route("/{page}/", name="admin_user",requirements={"page" = "\d+"}, defaults={"page" = 1})
 * @Template()
 */
public function indexAction($page = 1)
{

    $data = [];
   $data['name'] = $this->getUser()->getName();
    $form = $this->createForm('admin_user_search_type', null);
    $request = $this->getRequest();

    if ($request->getMethod() == 'POST') {
        $form->bind($request);
        $data = array_merge($data, $form->getData());
    }

    return $this->render('AABundle:User:index.html.twig', array(
                'pager' => $this->getDoctrine()->getManager()->getRepoitory('AABundle:User')->search($data, 4, $page, $this->getUser()),
                'form' => $form->createView(),
    ));
}

view.html.twig

{% if pager.haveToPaginate %}
        {{ pagerfanta(pager, 'twitter_bootstrap3') }}
    {% endif %}
smarttech
  • 133
  • 1
  • 4
  • 11

1 Answers1

0

The solution is to submit the form with Get methode instead of Post to be able to retrieve form data .Also we don't need to check whether is valid or not , while it is a search form .

The controller will be as it shown below:

    **
 * @Route("/{page}/", name="admin_user",requirements={"page" = "\d+"}, defaults={"page" = 1})
 * @Template()
 */
public function indexAction($page = 1)
{

    $data = [];
   $data['name'] = $this->getUser()->getName();
    $form = $this->createForm('admin_user_search_type', null);
    $request = $this->getRequest();
        $form->bind($request);
        $data = array_merge($data, $form->getData());

    return $this->render('AABundle:User:index.html.twig', array(
                'pager' => $this->getDoctrine()->getManager()->getRepoitory('AABundle:User')->search($data, 4, $page, $this->getUser()),
                'form' => $form->createView(),
    ));
}

the form.html.twig

<form name= "search" action="{{ path('admin_user') }}" novalidate method="get"{{ form_enctype(form) }}>
</form>
smarttech
  • 133
  • 1
  • 4
  • 11