在我学习Symfony(第3版)的过程中,我构建了一个带有过滤器表单的客户列表。我在一些例子中搜索了互联网,根据提供的过滤器 ajaxify 表结果。大多数信息都在stwe/DatatablesBundle等现有捆绑包上,或者将Symfony与Angular / ReactJS结合使用。
提到的最后一个选项实际上非常有趣,但作为Symfony开发人员的开始,我更感兴趣的是在Symfony / Javascript或JQuery中从头开始构建这个功能。 换句话说,类似于http://www.w3schools.com/php/php_ajax_database.asp但与Symfony特定的指令。
我熟悉创建JSON响应,但绑定数据的最佳方法是什么?在JQuery中写出来? ...
感谢您的建议。
答案 0 :(得分:0)
我认为最好的方法是拥有一个只渲染数据行的模板。然后创建一个Controller操作,其目的是使用您的过滤器获取数据并使用data_rows
模板呈现此数据。
public function tableAction(Request $request)
{
$filters = // ...
$rows = $repository->findAllWithFilters($filters);
// ...
return $this->render('data_rows.html.twig', ['rows' => $rows]);
}
最后,在" main"中使用render controller
将此请求作为主视图的子请求包含的操作:
{{ render(controller('AppBundle:Default:table', {'filters': filters})) }}
完成后,您可以直接在jQuery脚本中调用tableAction
路径,这将返回渲染的行。只需在HTML中附加行即可。