Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在Symfony 4中实现处理程序?_Php_Symfony_Datatables_Bundle_Handler - Fatal编程技术网

Php 如何在Symfony 4中实现处理程序?

Php 如何在Symfony 4中实现处理程序?,php,symfony,datatables,bundle,handler,Php,Symfony,Datatables,Bundle,Handler,根据Datatable Symfony bundle文档,我需要实现一个处理程序 您必须为每个DataTable实例创建一个处理程序。处理程序必须实现DataTableHandlerInterface接口。此接口包含的唯一功能是句柄: 我需要知道的是,我到底应该把代码放在哪里?在哪个文件夹和哪个页面上?您可以将处理程序文件放入 src/DataTables/UsersDataTable.php用于Symfony 4项目 在此文件中,您将实现请求处理程序(),不要忘记将其注册为服务: Users

根据Datatable Symfony bundle文档,我需要实现一个处理程序

您必须为每个DataTable实例创建一个处理程序。处理程序必须实现DataTableHandlerInterface接口。此接口包含的唯一功能是句柄:


我需要知道的是,我到底应该把代码放在哪里?在哪个文件夹和哪个页面上?

您可以将处理程序文件放入
src/DataTables/UsersDataTable.php
用于Symfony 4项目

在此文件中,您将实现请求处理程序(),不要忘记将其注册为服务:

UsersDataTable.php

// src/DataTables/UsersDataTable.php
class UsersDataTable implements DataTableHandlerInterface
{
    ///
}
// App\Controller\SomeController.php

public function usersAction(Request $request, DataTablesInterface $datatables): JsonResponse
{
   //
}
您可以在服务中注册服务。yaml

#config/services.yaml

services:
   datatable.users:
       class: App\DataTables\UsersDataTable
       tags: [{ name: datatable, id: users }]
       arguments: [ '@doctrine' ]
在此之后,您可以从控制器操作调用处理程序

SomeController.php

// src/DataTables/UsersDataTable.php
class UsersDataTable implements DataTableHandlerInterface
{
    ///
}
// App\Controller\SomeController.php

public function usersAction(Request $request, DataTablesInterface $datatables): JsonResponse
{
   //
}

如果您按照以下说明操作:所有处理程序将自动加载。

如果您按照文档操作,您会看到他们将其处理程序放入:AppBundle\DataTables\UsersDataTable并将其注册为服务:@Jeroen我没有AppBundle文件夹。我是否必须将其添加到我的根目录中?@Jarla如果您没有AppBundle文件夹,则不必创建一个。通常情况下,这样的文件夹存在,但我们不知道您的文件夹结构。你的代码通常在哪里输入?哪个文件夹?这是php代码,所以你必须把它放在一个php文件中。您必须用包的名称替换
AppBundle
。如果不使用捆绑包(如symfony 4),则必须将
DataTables
文件夹放在
Controller
旁边(通常在
src
中)@Jarla Yes!您还需要一个控制器操作,如调用handler的“UserAction”中的解释谢谢,这比文档中的解释要好得多。如果路径实际上是
src/DataTables/UsersDataTable.php
My bad(复制粘贴),请编辑我的答案。确保编写类的命名空间。