Symfony3:如何设置多个连接?

乔泰姆

我正在使用Symfony3应用程序,我想建立到不同数据库的多个连接。

我一直在寻找,并找到了有关entityManager和数据库连接的文档。我的config.yml配置如下:

配置文件

doctrine:
dbal:
    default_connection: default
    connections:
            default:
                    driver:   pdo_mysql
                    host:     "%database_host%"
                    port:     "%database_port%"
                    dbname:   "%database_name%"
                    user:     "%database_user%"
                    password: "%database_password%"
                    charset:  UTF8
                    mapping_types:
                      enum: string
            other:
                    driver:   pdo_mysql
                    host:     "%database_host2%"
                    port:     "%database_port2%"
                    dbname:   "%database_name2%"
                    user:     "%database_user2%"
                    password: "%database_password2%"
                    charset:  UTF8
                    mapping_types:
                      enum: string
orm:
    dql:
         string_functions:
                DAY:   DoctrineExtensions\Query\Mysql\Day
                MONTH: DoctrineExtensions\Query\Mysql\Month
                YEAR:  DoctrineExtensions\Query\Mysql\Year
    auto_generate_proxy_classes: "%kernel.debug%"
    naming_strategy: doctrine.orm.naming_strategy.underscore
    auto_mapping: true

所以现在我可以像这样访问我的数据库了:

$con2 = $this->get('doctrine.dbal.other_connection');
$orders = $con2->fetchAll('SELECT * FROM orders');

但是我真正需要的是配置第二个orm-mapping连接,这将允许我与实体进行交互,而不是直接处理第二个数据库。再次如文档所述,我在“准则orm”标签下添加:

orm:
    dql:
         string_functions:
                DAY:   DoctrineExtensions\Query\Mysql\Day
                MONTH: DoctrineExtensions\Query\Mysql\Month
                YEAR:  DoctrineExtensions\Query\Mysql\Year
    auto_generate_proxy_classes: "%kernel.debug%"
    naming_strategy: doctrine.orm.naming_strategy.underscore
    auto_mapping: true

    default_entity_manager: default
    entity_managers:
        default:
            connection: default
            mappings:
                AppBundle:  ~      
        other:
            connection: other
            mappings:
                OtherBundle: ~

这引发了一个异常:

Parser.php第296行中的ParseException:无法在第78行(“ entity_managers:”附近)进行解析。

如何配置config.yml以允许orm映射进行第二个数据库连接?我是否应该删除dql标签并仅在某个实体管理器标签下使用它?

加兰扎

试试这个:

doctrine:
    orm:
        auto_generate_proxy_classes: true
        entity_managers:
            default:
                mappings:
                    AppBundle: ~
                naming_strategy: doctrine.orm.naming_strategy.underscore
                dql:
                   string_functions:
                       DAY: DoctrineExtensions\Query\Mysql\Day
            other:
                mappings:
                    OtherBundle: ~

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在命令Symfony3中设置详细

来自分类Dev

在命令Symfony3中设置详细

来自分类Dev

提交symfony3表单时如何在子实体上设置父ID

来自分类Dev

如何在Apache中设置Symfony3环境

来自分类Dev

Symfony3登录表单:如何在security.yml中设置防火墙参数?

来自分类Dev

Symfony3 - 如何验证 HTML 标签

来自分类Dev

Symfony3连接注释路径

来自分类Dev

Symfony3,设置用户的上次登录日期

来自分类Dev

Symfony3,设置用户的上次登录日期

来自分类Dev

Symfony3使用多个AppKernel.php

来自分类Dev

Ajax与Symfony3

来自分类Dev

如何在Symfony3中解析自动生成的类

来自分类Dev

在使用symfony3的树枝中,“ {%use%}”如何工作?

来自分类Dev

如何在Symfony3的FormType中发送参数?

来自分类Dev

在使用symfony3的树枝中,“ {%use%}”如何工作?

来自分类Dev

如何在 symfony3 中添加元标记?

来自分类Dev

Symfony3执行phpmetrics

来自分类Dev

Symfony3 Profiler存储

来自分类Dev

配置Symfony3 URL

来自分类Dev

Symfony3 扩展了 AppKernel

来自分类Dev

Google App Engine Flexible 上的 Symfony3 无法连接到 Google Cloud SQL MySQL

来自分类Dev

Symfony3 queryBuilder 如何使用 OR 进行搜索以及如何搜索子字符串?

来自分类Dev

Symfony3服务和令牌存储

来自分类Dev

Symfony3从URL获取参数

来自分类Dev

使用Symfony3的API REST的结构

来自分类Dev

Symfony3:路由和缓存

来自分类Dev

set verbose in command Symfony3

来自分类Dev

Symfony3 allow_extra_fields

来自分类Dev

用PhpStorm进行Symfony3调试