【问题标题】:Symfony2 Doctrine ORM Manager named “db2” does not exist名为“db2”的 Symfony2 Doctrine ORM 管理器不存在
【发布时间】:2016-10-25 21:11:31
【问题描述】:

我创建 YML 实体,生成实体并配置多个连接

config.yml

# Doctrine Configuration
doctrine:
dbal:
    default_connection: db1
    connections:
        db1:
            driver:   '%database_driver%'
            host:     '%database_host%'
            port:     '%database_port%'
            dbname:   '%database_name%'
            user:     '%database_user%'
            password: '%database_password%'
            charset:  UTF8
        db2:
            driver:   '%database_driver2%'
            host:     '%database_host2%'
            port:     '%database_port2%'
            dbname:   '%database_name2%'
            user:     '%database_user2%'
            password: '%database_password2%'
            charset:  UTF8
    orm:
        auto_generate_proxy_classes: "%kernel.debug%"
        naming_strategy: doctrine.orm.naming_strategy.underscore
        auto_mapping: true

我的 orm.yml

TestBundle\Entity\Test:
type: entity
table: Test
id:
    id:
        type: integer
        nullable: false
        options:
            unsigned: true
        id: true
fields:
    name:
        type: string
        nullable: false
        length: 255
        options:
            fixed: false
lifecycleCallbacks: {  }

清理缓存并生成实体后,我尝试运行此代码(在命令控制器中)

<?php 

...

protected function execute(InputInterface $input, OutputInterface $output)
{
    $doctrine = $this->getContainer()->get('doctrine')->getManager('db2');
    //both methods cant work :( db2_entity_manager not found
    $doctrine = $this->getContainer()->get('doctrine.orm.db2_entity_manager');

    $test = $doctrine->getRepository('DionisDataBaseBundle:Test');

}

我有错误:

[InvalidArgumentException]
名为“db2”的 Doctrine ORM Manager 不存在。

【问题讨论】:

    标签: php symfony orm doctrine-orm doctrine


    【解决方案1】:

    将 config.yml 更改为

     orm:
        auto_generate_proxy_classes: "%kernel.debug%"
        default_entity_manager: db1
        entity_managers:
            db1:
                connection: db1
                mappings:
                    DionisDataBaseBundle: ~
            db2:
                connection: db2
                mappings:
                    DionisDataBaseBundle: ~
            db3:
                connection: db2
                mappings:
                    DionisDataBaseBundle: ~
    

    【讨论】:

      【解决方案2】:

      您刚刚从我的一个项目中声明了连接但没有实体管理器:

      doctrine:
          dbal:
      
              default_connection: default
              connections:
                  default:
                      host:     "%database_host%"
                      dbname:   "%database_name%"
                      user:     "%database_user%"
                      password: "%database_password%"
                      driver_class:  Realestate\MssqlBundle\Driver\PDODblib\Driver
                      mapping_types:
                          enum: string
                          string: string
                      # schema_filter: ~^(sf_fos_user)~
                  prod:
                      host:     *****
                      dbname:   ****
                      user:     "%database_user%"
                      password: "%database_password%"
                      driver_class:   Realestate\MssqlBundle\Driver\PDODblib\Driver
                      mapping_types:
                          enum: string
                          string: string
                      # schema_filter: ~^(sf_fos_user)~
      
          orm:
              default_entity_manager: default
              entity_managers:
                  default:
                      connection: default
                      mappings:
                          AppBundle: ~
                          Bundle2: ~
                  db2:
                      connection: prod
                      mappings:
                          otherBundle: ~
              auto_generate_proxy_classes: "%kernel.debug%"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-01-18
        • 2023-03-10
        • 2015-04-19
        • 2015-01-19
        • 2019-11-10
        • 2011-12-10
        • 2017-05-23
        相关资源
        最近更新 更多