我是相当新的 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 连接,尽管我正确填写了配置文件?