【问题标题】:symfony 2.4.4 trying to force a pdo_mysql connection instead of mongodbsymfony 2.4.4 试图强制 pdo_mysql 连接而不是 mongodb
【发布时间】:2014-05-15 06:59:54
【问题描述】:

我是新的 Symfony2。我安装了 FOSUserBundle 和 DoctrineMongoDBBundle ,我试图让它们一起正常工作。 在我之前的项目中,我设法从我的 mongoDB 数据库中创建了一个新用户并导入用户列表。根据我的 composer.json,这个之前的项目是 symfony 版本 2.1.x-dev。 在我的新项目中,我使用的是 symfony ~2.4。而且我无法在 FOSUserBundle 上加载 /register 页面。 symfony 没有加载注册表,而是抛出这个错误:

An exception occured in driver: SQLSTATE[28000] [1045] Access denied for user 'root'@'localhost' (using password: NO) 

所以 Symfony 正在尝试使用 pdo_mysql 驱动程序而不是连接到 mongoDB,因为它在我之前的项目中做得很好。根据 FOSUserBundle 文档,我遵循了相同的步骤:在 app/config/config.yml 中,我设置了如下的教义_mongodb 和 fos_user 信息:

#doctrine_mongodb
doctrine_mongodb:
    connections:
        default:
            server: mongodb://localhost:27017
            options: {}
    default_database: agitw
    document_managers:
        default:
            auto_mapping: true

#fos user
fos_user:
    db_driver:     mongodb
    firewall_name: main
    user_class:    Van\UserBundle\Document\User

我很确定这种行为是由 symfony 2.4 引起的,因为我无法用我的 symfony 2.1 项目重现它。 有谁知道为什么 symfony 试图强制 pdo_mysql 连接,尽管我正确填写了配置文件?

【问题讨论】:

标签: mongodb fosuserbundle symfony-2.4


【解决方案1】:

经过大量挖掘,找到了解决方案。 如果你在 MongoDB 中使用 Symfony,你需要在 app/config/config.yml 文件中注释所有的“doctrine:”部分。我的文件充满了“doctrine:”部分和“doctrine_mongodb:”部分。似乎如果设置了“doctrine:”配置,symfony 将在任何其他数据库之前使用它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-25
    • 1970-01-01
    • 1970-01-01
    • 2021-07-16
    相关资源
    最近更新 更多