symfony - 创建捆绑包以使用具有不同连接的辅助实体管理器
问题描述
我正在创建一个包,旨在从辅助数据库中提取数据。我不确定我可以添加或更改哪些其他配置来完成这项工作。我也尝试将连接直接传递到存储库中。理想情况下,使用捆绑包的工具能够将存储库作为参数传递并轻松使用它。
给出的错误:
The class 'SRC\SRC\DataBundle\Entity\Course' was not found in the chain configured namespaces
doctrine.yml
导入捆绑包的工具中的文件。SECONDARY_DATA 是我试图将我的实体管理器连接到的那个
doctrine:
dbal:
default_connection: default
connections:
default:
# configure these for your database server
driver: 'pdo_mysql'
server_version: '5.6'
charset: utf8mb4
default_table_options:
charset: utf8mb4
collate: utf8mb4_unicode_ci
url: '%env(DATABASE_URL)%'
SECONDARY_DATA_CONN:
# configure these for your database server
driver: 'pdo_mysql'
server_version: '5.6'
charset: utf8mb4
default_table_options:
charset: utf8mb4
collate: utf8mb4_unicode_ci
url: '%env(SECONDARY_DATABASE_URL)%'
orm:
auto_generate_proxy_classes: '%kernel.debug%'
default_entity_manager: default
entity_managers:
default:
naming_strategy: doctrine.orm.naming_strategy.underscore
auto_mapping: true
connection: default
mappings:
App:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/src/Entity'
prefix: 'App\Entity'
alias: App
SECONDARY_DATA:
naming_strategy: doctrine.orm.naming_strategy.underscore
connection: SECONDARY_DATA_CONN
auto_mapping: false
services.yml
主工具文件。出于隐私原因,我更改了一些路径和名称。
SRC\SRC\DataBundle\Entity\Repository\CourseRepository:
alias: 'src.src.data_bundle.course.repository'
services.yml
捆绑包文件
services:
src.src.data_bundle.course.repository:
class: SRC\SRC\DataBundle\Entity\Repository\CourseRepository
factory: ['@doctrine.orm.SECONDARY_DATA_entity_manager', getRepository] # where i believe the entity manager will know to use the correct database
public: false
arguments:
- 'SRC\SRC\DataBundle\Entity\Course'
存储库文件
namespace SRC\SRC\DataBundle\Entity\Repository;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
class CourseRepository extends ServiceEntityRepository
{}
解决方案
这就是我最终使用 ORM 条目上的映射解决它的方式
SECONDARY_data:
naming_strategy: doctrine.orm.naming_strategy.underscore
connection: SECONDRARY_data_CONN
auto_mapping: false
mappings:
DataBundle:
type: annotation
prefix: UCI\AWT\DataBundle\Entity
dir: "%kernel.project_dir%/.../.../data-bundle/Entity"
is_bundle: false
推荐阅读
- lua - Lua以某种方式计算表中的总值
- python - 读取单元格excel win32com
- c# - 将 DataGridView 绑定到反射对象数组
- php - 提交表单后保持复选框处于选中状态。自定义帖子类型,WordPress
- amazon-web-services - 如何获取 SageMaker 超参数调整作业的所有指标?
- reactjs - 还原节点包时出现多个 ENOENT 错误
- typescript - 使用声明合并普遍修补接口
- r - 将数值变量转换为二进制列
- opencv - 如何使用 Emgu.CV 从 Orbbec Astra Pro 读取深度传感器数据?
- python - Rasa 核心自定义模板