无法通过doctrine与mongodb连接
我和几个朋友一起去学校做一个项目。现在,我正试图用已有的mongodb设置我们的symfony项目,但在找到它时遇到了问题 我正试图按照官方指南,从www.symfony.com上用bundle DoctrineMongoDBBundle设置这个组合 我的教义:无法通过doctrine与mongodb连接,mongodb,symfony,vue.js,docker-compose,symfony4,Mongodb,Symfony,Vue.js,Docker Compose,Symfony4,我和几个朋友一起去学校做一个项目。现在,我正试图用已有的mongodb设置我们的symfony项目,但在找到它时遇到了问题 我正试图按照官方指南,从www.symfony.com上用bundle DoctrineMongoDBBundle设置这个组合 我的教义: doctrine_mongodb: auto_generate_proxy_classes: '%kernel.debug%' auto_generate_hydrator_classes: '%kernel.debug%'
doctrine_mongodb:
auto_generate_proxy_classes: '%kernel.debug%'
auto_generate_hydrator_classes: '%kernel.debug%'
connections:
default:
server: "%mongodb_server%"
options:
username: "%mongodb_username%"
password: "%mongodb_password%"
authSource: "%mongodb_db%"
default_database: "%mongodb_auth_db%"
document_managers:
default:
auto_mapping: true
mappings:
App:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/src/Document'
prefix: App\Document\
alias: App
从services.yaml获取的值
parameters:
locale: 'en'
mongodb_server: "mongodb://mongodb:27017"
mongodb_username: "admin"
mongodb_password: "my_password"
mongodb_auth_db: "admin"
mongodb_db: "users"
我们在docker环境中工作,所以我的symfony项目和数据库在两个不同的docker上(我需要通过它们连接,所以localhost不工作)
作为我为用户在控制器上工作的第一个功能,我正在尝试使注册用户工作,这是我当前使用的控制器(仍然带有模拟数据):
/**
*@Route(“/api/security/register”,name=“register”)
*@Method(“GET”)
*@return-JsonResponse
*/
公共函数registerAction():JsonResponse
{
$user=新用户();
$user->setUsername('test');
$user->setEmail($user)test@test.test');
$user->setPlainPassword('testtest');
$dm=$this->get('doctrine\u mongodb')->getManager();
$dm->persist($user);
$dm->flush();
返回新的JsonResponse(数组('Status'=>'OK'));
}
同样在数据库中,我想连接到管理员用户,管理员用户有权写入“用户”数据库(在那个里我想保存我的新用户)
尝试发送请求时出现错误:
request.CRITICAL:Uncaught PHP Exception MongoConnectionException:“找不到合适的服务器(
serverSelectionTryOnce
set):[Failed to resolve'mongodb']”位于/var/www/html/vendor/alcaeus/mongo PHP adapter/lib/alcaeus/MongoDbAdapter/ExceptionConverter.PHP第79行{“Exception”:“[object](MongoConnectionException)(代码:13053):在/var/www/html/vendor/alcaeus/mongo-php-adapter/lib/alcaeus/MongoDbAdapter/ExceptionConverter.php:79,mongodb\Driver\Exception\ConnectionTimeoutException(代码:13053):未找到合适的服务器(serverSelectionTryOnce
set):[无法解析'mongodb']at/var/www/html/vendor/mongodb/mongodb/src/Collection.php:867)“}[]问题确实出在我的docker compose文件中,我没有将两个docker都连接到网络,谢谢帮助@BrucieAlpha你使用docker compose吗?如果是,请共享你的docker compose.yaml…如果不是,你必须确保你的容器在同一个网络中…@BrucieAlpha现在我看到它们(两个不同的docker Composer)他们不共享同一个网络,因为我刚刚开始使用docker,我不知道它会阻止他们之间的连接,谢谢你的建议,我会尝试将他们添加到同一个网络,而且我会用docker composer的更新票证