Symfony - Ajaxify表过滤器

时间:2016-02-17 14:50:42

标签: javascript php jquery symfony

在我学习Symfony(第3版)的过程中,我构建了一个带有过滤器表单的客户列表。我在一些例子中搜索了互联网,根据提供的过滤器 ajaxify 表结果。大多数信息都在stwe/DatatablesBundle等现有捆绑包上,或者将Symfony与Angular / ReactJS结合使用。

提到的最后一个选项实际上非常有趣,但作为Symfony开发人员的开始,我更感兴趣的是在Symfony / Javascript或JQuery中从头开始构建这个功能。 换句话说,类似于http://www.w3schools.com/php/php_ajax_database.asp但与Symfony特定的指令。

我熟悉创建JSON响应,但绑定数据的最佳方法是什么?在JQuery中写出来? ...

感谢您的建议。

1 个答案:

答案 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中附加行即可。