symfony - Symfony3:在服务中注入几个@doctrine.orm.entity_manager
问题描述
我与几个连接一起工作
这是我的 config.yml :
doctrine:
dbal:
default_connection: connexion_1# specify the connexion used by default
connections:
connexion_1:
driver: "%database_driver1%"
....
connexion_2:
driver: "%database_driver2%"
...
我想在服务中注入 2 个连接实体管理器。
在我的 service.yml 中,我可以只注入一个名为 "@doctrine.orm.entity_manager" 的 entity_manager。这是默认管理器
@doctrine.orm.entity_manager argument
zip_command:
class: BackEndBundle\Command\ZipCommand
arguments:
- '@doctrine.orm.entity_manager'
tags:
- { name: console.command }
如何注入其他连接?
解决方案
选项1
根据文档,您应该能够通过doctrine.orm.{entity_manager_name_here}_entity_manager
别名注入您的自定义实体管理器。doctrine.orm.entity_managers
您可以在 config.yml中找到您的实体经理的名称。
选项 2
如果您想访问服务中的所有实体管理器,您可以Doctrine\Common\Persistence\ManagerRegistry
直接注入并使用getManager(s)
方法。
推荐阅读
- logging - 打开堆栈日志格式
- java - 退出类 While 循环并返回主方法?
- c# - 图像和文本的 Xamarin.Forms ToolBarItems 问题
- android - 更新小部件
- powershell - HTTP 状态代码:PowerShell 中 AzureRM.Datafactoryv2 cmdlet 未找到错误
- python - 在 Python 中逐秒保存结果
- html - 弹性容器项目不尊重高度
- dialogflow-es - 如何在对话框流中制作表单?
- javascript - 由于某种原因,jquery 不会在 VB 项目上运行
- c++ - 时间:2019-01-01 标签:c++linkedlistlistoperator[]