Php 如何订阅DataTableFactory服务?
我正在尝试在Symfony 4.2中使用 有非常好的手册和启动器,但是它与extends控制器类一起使用。但是我试着用AbstractController来使用它 班级 所以我有这样一个问题: 未找到服务“Php 如何订阅DataTableFactory服务?,php,symfony,Php,Symfony,我正在尝试在Symfony 4.2中使用 有非常好的手册和启动器,但是它与extends控制器类一起使用。但是我试着用AbstractController来使用它 班级 所以我有这样一个问题: 未找到服务“Omines\datatablebundle\DataTableFactory”:偶数 虽然它存在于应用程序的容器中,但容器 “App\Controller\StaffController”是一个较小的服务定位器 只知道“原则””、“表单工厂””、“http\u内核”, “参数_包”、“请求_
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()可能需要注入另一个类?我不使用这个捆绑包,所以我不知道。它有一个特点:啊哈。我想我可以把它直接放在课堂上。非常感谢您的支持。你帮了我很多。现在可以了。我祝愿您在所有项目和计划中取得成功!