多个连接无法识别选项“mapping_types”

Posted

技术标签:

【中文标题】多个连接无法识别选项“mapping_types”【英文标题】:Unrecognized option "mapping_types" by multiple connections 【发布时间】:2015-07-14 22:05:54 【问题描述】:

我正在尝试将“enum”类型添加到我的 symfony2 dbal 连接中,但我找不到方法。

doctrine:
    dbal:
        mapping_types:
            enum: string
        default_connection: default
        connections:
            default:
                  driver:   "%database_driver%"
                  host:     "%database_host%"
                  port:     "%database_port%"
                  dbname:   "%database_name%"
                  user:     "%database_user%"
                  password: "%database_password%"
                  charset:  UTF8
            connection2:
                  driver:   "%database2_driver%"
                  host:     "%database2_host%"
                  port:     "%database2_port%"
                  dbname:   "%database2_name%"
                  user:     "%database2_user%"
                  password: "%database2_password%"
                  charset:  LATIN1

这是我现在的配置,我收到了错误:

  [Symfony\Component\Config\Definition\Exception\InvalidConfigurationException]  
  Unrecognized option "mapping_types" under "doctrine.dbal"    

我还尝试将其放在 connection2 下方并删除了 default_connection,因为我找到了解决此类问题的答案。但这些问题并没有多重联系。

【问题讨论】:

【参考方案1】:

mapping_types 必须位于混凝土连接下。所以你需要下一个配置:

doctrine:
    dbal:
        default_connection: default
        connections:
            default:
                  mapping_types:
                      enum: string
                  driver:   "%database_driver%"
                  host:     "%database_host%"
                  port:     "%database_port%"
                  dbname:   "%database_name%"
                  user:     "%database_user%"
                  password: "%database_password%"
                  charset:  UTF8
            connection2:
                  mapping_types:
                      enum: string
                  driver:   "%database2_driver%"
                  host:     "%database2_host%"
                  port:     "%database2_port%"
                  dbname:   "%database2_name%"
                  user:     "%database2_user%"
                  password: "%database2_password%"
                  charset:  LATIN1

【讨论】:

你是对的,但这不是 Symfony 文档描述 Doctrine 配置的方式。见symfony.com/doc/3.3/reference/configuration/…。示例 clear 显示了教义.dbal 本身中的 mapping_types。 @JasonGabler,在提供的文档中,如果存在多个连接,则没有关于密钥 mapping_types 所在位置的信息。但是您可以从连接中与其他键进行类比。关键 mapping_types 依赖于 connectiondriverhost 相同,因此它们应该在具体连接下的一个块中。【参考方案2】:

按照完整参考,必须在指定的连接元素下设置mapping_types

查看here了解更多详情

希望有帮助

【讨论】:

你是对的,但这不是 Symfony 文档描述 Doctrine 配置的方式。在您提供的 Symfony 文档链接中,示例 clear 显示了学说.dbal 本身中的 mapping_types。

以上是关于多个连接无法识别选项“mapping_types”的主要内容,如果未能解决你的问题,请参考以下文章

虚拟机网卡显示未识别的网络,求解决!?

Android adb无法连接设备的总结

oracle连接“监听程序当前无法识别连接描述符中请求的服务’怎么解决

vmware不识别无线网卡

chrome://inspect 中无法识别离子视图

argparse 错误:无法识别选项