根据Datatable Symfony捆绑包文档,我需要实现一个处理程序。
您必须为每个DataTable实例创建一个处理程序。处理程序必须实现DataTableHandlerInterface接口。该接口包含的唯一功能是handle:
/**
* Handles specified DataTable request.
*
* @param DataTableQuery $request
*
* @throws DataTableException
* @return DataTableResults
*/
public function handle(DataTableQuery $request): DataTableResults;
我需要知道的是,我到底要将代码放在哪里?在哪个文件夹和哪个页面上?
答案 0 :(得分:1)
您可以将处理程序文件放入
src/DataTables/UsersDataTable.php
用于Symfony 4项目。
在此文件中,您将实现请求处理程序(https://github.com/webinarium/DataTablesBundle/wiki#step-1-implement-request-handler)。不要忘记将其注册为服务: https://github.com/webinarium/DataTablesBundle/wiki#step-2-register-the-handler
UsersDataTable.php
// src/DataTables/UsersDataTable.php
class UsersDataTable implements DataTableHandlerInterface
{
///
}
您在 services.yaml
中注册服务#config/services.yaml
services:
datatable.users:
class: App\DataTables\UsersDataTable
tags: [{ name: datatable, id: users }]
arguments: [ '@doctrine' ]
此后,您可以从控制器操作中调用处理程序 https://github.com/webinarium/DataTablesBundle/wiki#step-3-invoke-the-handler
SomeController.php
// App\Controller\SomeController.php
public function usersAction(Request $request, DataTablesInterface $datatables): JsonResponse
{
//
}
如果您按照https://github.com/webinarium/DataTablesBundle/wiki#handlers-service-autoloading下的说明进行操作,则会自动加载所有处理程序。