我在DbExtensionBundle的子目录服务中有服务PgHistService:
namespace Iba\DbExtensionBundle\Service;
class PgHistService { ...}
此服务在捆绑包的services.yml中定义,并且可以通过$ this-> get(' pghist.service')成功地包含在控制器中:
parameters:
pghist.service.class: Iba\DbExtensionBundle\Service\PgHistService
services:
pghist.service:
class: %pghist.service.class%
arguments:
entityManager: "@doctrine.orm.entity_manager"
现在我想在doctrine实体监听器中用JMS \ DIExtraBundle注入它:
namespace Iba\DbExtensionBundle\Entity;
use JMS\DiExtraBundle\Annotation as DI;
class BaseEntityListener {
/** @DI\Inject("pghist.service") */
public $pgHist;
}
变量pgHist始终为null。我做错了什么,拜托?我尝试在config.yml中设置它,但它不起作用:
jms_di_extra:
locations:
all_bundles: false
bundles: [DbExtensionBundle]
directories: ["%kernel.root_dir%/../vendor/iba/db-extension-bundle/Iba/DbExtensionBundle/Service"]
答案 0 :(得分:0)
@DoctrineListener
而不是实体中的Doctrine标准@EntityListeners
来调用侦听器。