php - 使用 Symfony 覆盖 config_dev 中的 mapping_types 部分

标签 php symfony doctrine-orm

我正在为 prod 环境使用此学说配置:

doctrine:
    dbal:
        default_connection: app_connection
        connections: 
            app_connection:
                driver:   "%database_driver%"
                host:     "%database_host%"
                port:     "%database_port%"
                dbname:   "%database_name%"
                user:     "%database_user%"
                password: "%database_password%"
                charset:  UTF8
                mapping_types:
                    bit: boolean

但是当本地工作时,我总是必须删除mapping_types:bit: boolean部分以便能够删除和创建我的数据库。 (否则我会收到错误“未知数据库”)

所以我想我可以通过复制config_dev.yml文件中的学说配置来覆盖它,而不是编写mapping_types部分,但它不起作用。如果我不在 config.yml 中删除它,我就会不断收到错误。

我想我可以使用一个不会导入配置文件的 config_dev 文件,但我想知道是否有一种有效的方法来覆盖“mapping_types”部分。

最佳答案

您可以使用parameters 字段(来自parameters.yml 文件)以便在不同的计算机中进行配置。例如,您可以在 config.yml 文件中指定:

doctrine:
    dbal:
        default_connection: app_connection
        connections: 
            app_connection:
                driver:   "%database_driver%"
                host:     "%database_host%"
                port:     "%database_port%"
                dbname:   "%database_name%"
                user:     "%database_user%"
                password: "%database_password%"
                charset:  UTF8
                mapping_types: "%database_mapping_types%"

并在生产服务器的 parameters.yml 中进行配置:

parameters.yml

  database_mapping_types: {bit: boolean}

并在本地服务器的 parameters.yml 中进行配置:

parameters.yml

  database_mapping_types: ~

显然在 parameter.yml.dist 中设置默认值作为示例:

parameters.yml.dist

  database_mapping_types: ~

编辑:

当然,您可以为生产环境而不是开发环境指定不同的配置,如下所示:

config_dev.yml

doctrine:
    dbal:
        default_connection: app_connection
        connections: 
            app_connection:
                driver:   "%database_driver%"
                host:     "%database_host%"
                port:     "%database_port%"
                dbname:   "%database_name%"
                user:     "%database_user%"
                password: "%database_password%"
                charset:  UTF8
                mapping_types: ~

在产品环境中,您可以覆盖所需的 key ,如下所示:

config_prod.yml

doctrine:
    dbal:
        default_connection: app_connection
        connections: 
            app_connection:
              mapping_types:
                  bit: boolean

希望这有帮助

关于php - 使用 Symfony 覆盖 config_dev 中的 mapping_types 部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40751236/

相关文章:

symfony - 交响乐 3.4 : FOS User Bundle : Override Controller

Symfony 2 - 路由参数何时以及为何自动转换?

php - 从本地主机发送电子邮件到外部电子邮件帐户

php - 如何在每页中重复表格列标题

javascript - 如何使用 PHP 和 JS 将文本复制到剪贴板?

mysql - Symfony,OneToMany 属性的 Doctrine 顺序

Symfony2 + Doctrine2/从 2 个连接的实体对象构建表单

php - PHP中的MySql更新语句

unix - 使用 Symfony 将更新值写入控制台

php - 如何在 Symfony 2 中管理大型初始应用程序数据