Symfony-依赖项未插入我的实体侦听器类中

Bre*_*old 5 php dependencies code-injection autowired symfony

我的自动装配不适用于基本文件实体侦听器。

我有一个File实体类,它使用批注指定侦听器,例如:

/**

@Orm\Entity(repositoryClass="root\CoreBundle\Repository\FileRepository")
@Orm\EntityListeners({"root\CoreBundle\EventListener\Entity\FileEntityListener"})
@Orm\Table(
etc...
Run Code Online (Sandbox Code Playgroud)

FileEntityListener类的开始如下:

class FileEntityListener
{
private $encoderFactory;
private $logger;

public function __construct(FilesystemMap $filesystemMap, LoggerInterface $logger)
{
    $this->setFilesystemMap($filesystemMap);
    $this->logger = $logger;
}
Run Code Online (Sandbox Code Playgroud)

当侦听器启动时,没有将依赖项注入侦听器的构造函数中,并且我收到该构造函数的错误,说:

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
Run Code Online (Sandbox Code Playgroud)

该捆绑包是自动接线的,但是没有注入依赖项。

有人知道为什么这行不通吗?也许我缺少一个简单的配置步骤?

Vov*_*kin 2

您需要在 services.yaml 中像这样标记您的实体侦听器:

services: root\CoreBundle\EventListener\Entity\FileEntityListener tags: - { name: doctrine.orm.entity_listener }