[英]Cannot connect with mongodb through doctrine
我正在和几个朋友做一个上学的项目。 现在,我试图用已经存在的mongodb来设置我们的symfony项目,但是发现它却遇到了问题。
我正在尝试遵循官方指南,以了解如何从www.symfony.com使用捆绑DoctrineMongoDBBundle设置该组合。
我的学说:
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项目和数据库位于两个不同的dockers上(我需要通过它们进行连接,因此localhost无法正常工作)。
作为第一个功能,我正在为用户的控制器上工作,试图使注册用户正常工作,这是我当前正在使用的控制器(仍包含模拟数据):
/**
* @Route("/api/security/register", name="register")
* @Method("GET")
* @return JsonResponse
*/
public function registerAction(): JsonResponse
{
$user = new User();
$user->setUsername('test');
$user->setEmail('test@test.test');
$user->setPlainPassword('testtest');
$dm = $this->get('doctrine_mongodb')->getManager();
$dm->persist($user);
$dm->flush();
return new JsonResponse(array('Status' => 'OK'));
}
同样在数据库中,我想连接到管理员用户,该管理员用户具有写入“用户”数据库的权限(我想保存我的新用户)。
错误,我试图发送请求:
request.CRITICAL:未捕获的PHP异常MongoConnectionException:“找不到合适的服务器( serverSelectionTryOnce
设置):[无法解析'mongodb']”,位于/ var / www / html / vendor / alcaeus / mongo-php-adapter / lib / Alcaeus / MongoDbAdapter / ExceptionConverter.php第79行{“ exception”:“ [对象](MongoConnectionException(代码:13053):未找到合适的服务器( serverSelectionTryOnce
设置):[无法解析'mongodb'] / var / www / html / vendor /alcaeus/mongo-php-adapter/lib/Alcaeus/MongoDbAdapter/ExceptionConverter.php:79,MongoDB \\ Driver \\ Exception \\ ConnectionTimeoutException(代码:13053):找不到合适的服务器( serverSelectionTryOnce
设置):[无法解析'mongodb' ]在/var/www/html/vendor/mongodb/mongodb/src/Collection.php:867)“} []
问题确实在我的docker compose文件中,我没有将两个docker都与网络连接,感谢@BrucieAlpha的帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.