Symfony - 依赖项未注入我的实体侦听器 class
Symfony - Dependencies not injecting in my entity listener class
我的自动装配不适用于基本文件实体侦听器。
我有一个文件实体 class,它使用注释来指定侦听器,例如:
/**
@Orm\Entity(repositoryClass="root\CoreBundle\Repository\FileRepository")
@Orm\EntityListeners({"root\CoreBundle\EventListener\Entity\FileEntityListener"})
@Orm\Table(
etc...
FileEntityListener class 启动如下:
class FileEntityListener
{
private $encoderFactory;
private $logger;
public function __construct(FilesystemMap $filesystemMap, LoggerInterface $logger)
{
$this->setFilesystemMap($filesystemMap);
$this->logger = $logger;
}
当侦听器启动时,依赖项没有注入到侦听器的构造函数中,我得到一个构造函数错误,说:
Type error: Too few arguments to function Epcvip\CoreBundle\EventListener\Entity\FileEntityListener::__construct(), 0 passed in /var/www/html/accounting/vendor/doctrine/doctrine-bundle/Mapping/ContainerAwareEntityListenerResolver.php on line 83 and exactly 2 expected
捆绑包已自动装配,但未注入依赖项。
有人知道为什么这不起作用吗?也许我缺少一个轻微的配置步骤?
您需要像这样在 services.yaml 中标记您的实体侦听器:
services:
root\CoreBundle\EventListener\Entity\FileEntityListener
tags:
- { name: doctrine.orm.entity_listener }
我的自动装配不适用于基本文件实体侦听器。
我有一个文件实体 class,它使用注释来指定侦听器,例如:
/**
@Orm\Entity(repositoryClass="root\CoreBundle\Repository\FileRepository")
@Orm\EntityListeners({"root\CoreBundle\EventListener\Entity\FileEntityListener"})
@Orm\Table(
etc...
FileEntityListener class 启动如下:
class FileEntityListener
{
private $encoderFactory;
private $logger;
public function __construct(FilesystemMap $filesystemMap, LoggerInterface $logger)
{
$this->setFilesystemMap($filesystemMap);
$this->logger = $logger;
}
当侦听器启动时,依赖项没有注入到侦听器的构造函数中,我得到一个构造函数错误,说:
Type error: Too few arguments to function Epcvip\CoreBundle\EventListener\Entity\FileEntityListener::__construct(), 0 passed in /var/www/html/accounting/vendor/doctrine/doctrine-bundle/Mapping/ContainerAwareEntityListenerResolver.php on line 83 and exactly 2 expected
捆绑包已自动装配,但未注入依赖项。
有人知道为什么这不起作用吗?也许我缺少一个轻微的配置步骤?
您需要像这样在 services.yaml 中标记您的实体侦听器:
services:
root\CoreBundle\EventListener\Entity\FileEntityListener
tags:
- { name: doctrine.orm.entity_listener }