如何解决Symfony 3.4:如何将服务注入实体侦听器?
考虑以下侦听器代码:
namespace My\Bundle\Listeners;
class MyListener
{
public function __construct(UserManager $userManager,LoggerInterface $logger)
{
this->userManager = $userManager;
$this->logger = $logger;
}
// ...
}
services:
_defaults:
autowire: true
autoconfigure: true
public: false
My\Bundle\Listeners\MyListener:
arguments:
- '@My\Bundle\Manager\UserManager'
- '@logger'
tags:
- { name: doctrine.event_listener,event: preUpdate }
- { name: doctrine.event_listener,event: postFlush }
和实体:
/**
* @ORM\Entity()
*
* @ORM\EntityListeners({"My\Bundle\Listeners\MyListener"})
*/
class MyEntity
{
}
它给了我错误:
函数的参数太少 My\Bundle\Listeners\MyListener::__construct(),0 传入 /var/www/project/vendor/doctrine/doctrine-bundle/Mapping/ContainerEntityListenerResolver.PHP 在第 80 行,预期正好有 2 个
如果我删除 @ORM\EntityListeners
注释,它就像侦听器不存在一样。
有什么想法吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。