5

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

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。

我怎样才能做到这一点?

4

2 回答 2

0

只需将结果数据附加到您的 div

于 2014-01-06T22:17:47.790 回答
-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);

希望这有帮助

于 2013-01-30T15:08:47.543 回答