gpt4 book ai didi

php - Symfony - 依赖项未注入(inject)我的实体监听器类

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:46:24 24 4
gpt4 key购买 nike

我的 Autowiring 不适用于基本的文件实体监听器。

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

/**

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

FileEntityListener 类开始如下:

class FileEntityListener
{
private $encoderFactory;
private $logger;

public function __construct(FilesystemMap $filesystemMap, LoggerInterface $logger)
{
$this->setFilesystemMap($filesystemMap);
$this->logger = $logger;
}

当监听器启动时,依赖项不会注入(inject)到监听器的构造函数中,我得到一个构造函数错误,说:

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

bundle 是 Autowiring 的,但没有注入(inject)依赖项。

有人知道为什么这不起作用吗?也许我缺少一个轻微的配置步骤?

最佳答案

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

服务:
根\CoreBundle\EventListener\Entity\FileEntityListener
标签:
- {名称:doctrine.orm.entity_listener}

关于php - Symfony - 依赖项未注入(inject)我的实体监听器类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47341876/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com