我是一个非常新的Symfony2。我安装了FOSUserBundle和DoctrineMongoDBBundle,我试图让这些工作正确。 在我以前的项目中,我设法从我的mongoDB数据库创建一个新用户和导入用户列表。根据我的composer.json,这个以前的项目是symfony版本2.1.x-dev。 在我的新项目中,我使用的是symfony~2.4。而且我无法在FOSUserBundle上加载/注册页面。 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中,我设置了doctrine_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连接,尽管我填写了正确的配置文件?
答案 0 :(得分:1)
经过大量挖掘后找到了解决方案。 如果你正在使用Symfony和MongoDB,你需要评论所有" doctrine:"部分在app / config / config.yml文件中。我的文件充满了" doctrine:"部分和" doctrine_mongodb:"部分。似乎" doctrine:"配置已设置,symfony将在任何其他数据库之前使用它。