我想在Symfony2项目中覆盖默认的Doctrine\ORM\EntityRepository
类,以便可以访问@session
服务,以便所有存储库都可以访问某个会话变量(如果已设置。)>
在调查中,它看起来不像我希望的那么简单,因为EntityRepository是从Doctrine\ORM\EntityManager
内部实例化的,而该类本身是使用静态“ create”方法实例化的。
我遵循Injecting dependency into entity repository中的答案,但在实际实现自定义管理器类时遇到了障碍(特别是答案的作者说:“但是,由于您正在创建自定义实体管理器,因此可以将其连接到服务容器并注入所需的任何依赖项”)。>
我已经定义了覆盖的EntityManager类,并具有覆盖的“创建”功能,并且也覆盖了“ getRepository”功能。我相信正是在此函数中,我需要将会话添加到存储库中,因为它是在覆盖的EntityRepository类上使用“ setSession”方法创建的,但是我不确定如何在会话中将会话实际进入管理器。首先,在Connection $conn, Configuration $config, EventManager $eventManager
“ ormLoad”方法中提供了EntityManager类(Symfony\Bundle\DoctrineBundle\DependencyInjection\DoctrineExtension
)的其他构造函数参数。
我也指定了
doctrine.orm.entity_manager.class: Me\MyBundle\Doctrine\ORM\EntityManager
在我的config.yml文件中。
创建存储库时,如何让Symfony使用我的自定义EntityManager类,并将会话也注入其中?
我想在Symfony2项目中覆盖默认的Doctrine \ ORM \ EntityRepository类,以便可以访问@session服务,以便我的所有存储库都可以访问特定的...
ServiceEntityRepository
,并且通过自动装配无需进行任何[[services.yaml