Symfony 2.1 ajax过滤器与KNP Paginator捆绑

时间:2012-12-20 16:41:42

标签: ajax pagination symfony-2.1

嗨,我的页面上有一个包含元素列表的表(index.html.twig。)。我正在使用KNP Paginator Bundle对结果进行分页。现在我想在此页面中实现某种过滤器来过滤表格结果。我正在使用AJAX来执行此操作,因此我创建了另一个视图(grupos.html.twig),其中包含表和内部的paginator以呈现查询结果。 这是控制器代码:

public function filtrarGrupoPorLetraAction(){
 if ($this->getRequest()->isXmlHttpRequest()) {
   $em = $this->getDoctrine()->getManager();
   $letra = $this->getRequest()->get('letra');
   $entities = $em->getRepository('GrupoBundle:Grupo')->filtrar($letra);

   $paginator = $this->get('knp_paginator');
   $pagination = $paginator->paginate(
     $entities,
     $this->get('request')->query->get('page', 1) /*page number*/,
     25/*limit per page*/
   );

   return $this->render('GrupoBundle:Grupo:grupos.html.twig', compact('pagination'));
 }
}

但是此代码呈现了一个新页面,我想将结果传递给index.html.twig以呈现div。

我该怎么做?

2 个答案:

答案 0 :(得分:0)

只需将结果数据附加到div

即可

答案 1 :(得分:-1)

如果您只需要json响应,请使用下面的代码

// create a JSON-response with a 200 status code
$response = new Response(json_encode($yourData));
$response->headers->set('Content-Type', 'application/json');

return $response;

如果您需要渲染模板

return $this->renderView('YourTemplateFile', $yourParams);

希望这有帮助