繁体   English   中英

无法通过学说与mongodb连接

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM