Php 如何订阅DataTableFactory服务?

Php 如何订阅DataTableFactory服务?,php,symfony,Php,Symfony,我正在尝试在Symfony 4.2中使用 有非常好的手册和启动器,但是它与extends控制器类一起使用。但是我试着用AbstractController来使用它 班级 所以我有这样一个问题: 未找到服务“Omines\datatablebundle\DataTableFactory”:偶数 虽然它存在于应用程序的容器中,但容器 “App\Controller\StaffController”是一个较小的服务定位器 只知道“原则””、“表单工厂””、“http\u内核”, “参数_包”、“请求_

我正在尝试在Symfony 4.2中使用

有非常好的手册和启动器,但是它与extends控制器类一起使用。但是我试着用AbstractController来使用它 班级

所以我有这样一个问题:

未找到服务“
Omines\datatablebundle\DataTableFactory
”:偶数 虽然它存在于应用程序的容器中,但容器 “
App\Controller\StaffController
”是一个较小的服务定位器 只知道“
原则”
”、“
表单工厂”
”、“
http\u内核”,
“
参数_包
”、“
请求_堆栈
”、“
路由器
”, “
security.authorization\u checker
”,“
security.csrf.token\u manager
”, “
security.token\u storage
”、“
serializer
”、“
session
”和“
twig
”服务。 尝试使用依赖项注入

我已经找到了一个解决方案,但是我刚刚开始使用Symfony,所以我还没有真正理解它的含义:

如果改用
AbstractController
,当前 推荐做法,确保您订阅
DataTableFactory
自己维修。或者你可以 绕过便利性特征,通过常规方式注入服务 构造函数注入

如何订阅DataTableFactory服务?


而另一种选择“绕过便利性特征,注入服务”意味着什么

我不知道如何订阅服务,但下面是如何注入服务

向控制器添加构造函数并注入DataTableFactory:

//use Omines\DataTablesBundle\DataTableFactory;

private $factory;

public function __construct(
    DataTableFactory $factory
) {
    $this->factory = $factory;
}

/**
 * Creates and returns a basic DataTable instance.
 *
 * @param array $options Options to be passed
 * @return DataTable
 */
protected function createDataTable(array $options = [])
{
    return $this->factory->create($options);
}

/**
 * Creates and returns a DataTable based upon a registered DataTableType or an FQCN.
 *
 * @param string $type FQCN or service name
 * @param array $typeOptions Type-specific options to be considered
 * @param array $options Options to be passed
 * @return DataTable
 */
protected function createDataTableFromType($type, array $typeOptions = [], array $options = [])
{
    return $this->factory->createFromType($type, $typeOptions, $options);
}
然后你可以这样使用它:

$this->createDateTable();

谢谢你的支持。不幸的是,这个解决方案对我不起作用。我收到一条错误消息:试图调用类“Omines\DataTableBundle\DataTableFactory”中名为“createDataTable”的未定义方法。DataTableFactory没有该函数。只有create()和createFromType()可能需要注入另一个类?我不使用这个捆绑包,所以我不知道。它有一个特点:啊哈。我想我可以把它直接放在课堂上。非常感谢您的支持。你帮了我很多。现在可以了。我祝愿您在所有项目和计划中取得成功!