找不到使用Symfony 4和MongoDB/服务的新项目

找不到使用Symfony 4和MongoDB/服务的新项目,mongodb,symfony,symfony4,Mongodb,Symfony,Symfony4,我正试图用MongoDB创建一个新的Symfony4项目 首先,我使用以下文档创建了一个Symfony4项目: 然后,我使用以下文档包括MongoDB: 我尽可能地按照说明操作(例如,我不需要向app/AppKernel.php添加任何内容,但MongoDB会自动添加到config/bundles.php) 现在我认为一切都应该正常,但我的Symfony应用程序找不到MongoDB服务: You have requested a non-existent service "doctrine_

我正试图用MongoDB创建一个新的Symfony4项目

首先,我使用以下文档创建了一个Symfony4项目:

然后,我使用以下文档包括MongoDB:

我尽可能地按照说明操作(例如,我不需要向app/AppKernel.php添加任何内容,但MongoDB会自动添加到config/bundles.php)

现在我认为一切都应该正常,但我的Symfony应用程序找不到MongoDB服务:

You have requested a non-existent service "doctrine_mongodb". 
Did you mean one of these: "http_kernel", "request_stack", "router"?
in ServiceLocator.php (line 48)
控制器:

namespace App\Controller;

use App\Document\Chapter;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;

class DefaultController extends AbstractController {

    public function createAction() {
        $test = new Chapter();
        $test->setHeadline('Test');

        $dm = $this->get('doctrine_mongodb')->getManager();
        $dm->persist($test);
        $dm->flush();

        return new Response('Created product id '.$test->getId());
    }
}
但是,如果我在控制台上执行此操作:

php bin/console debug:container
我得到一份服务清单,包括:

doctrine_mongodb                                                                             Doctrine\Bundle\MongoDBBundle\ManagerRegistry
doctrine_mongodb.odm.default_connection                                                      Doctrine\MongoDB\Connection
doctrine_mongodb.odm.default_document_manager                                                Doctrine\ODM\MongoDB\DocumentManager
doctrine_mongodb.odm.document_manager                                                        alias for "doctrine_mongodb.odm.default_document_manager"
因此,该服务似乎存在,但Symfony无法从我的应用程序加载它

你知道我该怎么解决这个问题吗? 是否有可能Mongo DB服务器连接不起作用,并且由于某些原因,它没有被记录,服务无法加载?

尝试从“控制器”扩展到“抽象控制器”

尝试从“Controller”扩展到“AbstractController”


你可以使用自动布线

使用条令\ODM\MongoDB\DocumentManager作为DocumentManager


公共函数createProduct(DocumentManager$dm)
您可以使用自动布线

使用条令\ODM\MongoDB\DocumentManager作为DocumentManager


public function createProduct(DocumentManager$dm)

页面上显示“您正在查找的页面不存在。您可以浏览以下任何资源。”如果不得不猜测,我可能会怀疑mongodb服务是私有的,需要注入。在你的问题中没有足够的信息。您发布的代码是控制器的一部分吗?你是从AbstractController扩展过来的吗?AbstractController限制对容器的访问。@AlexBlex这是正确的链接(我编辑了我的帖子):@Cerad:我编辑了我的帖子,以包含从本示例中获取的完整控制器:唯一有效的链接是在最后一条注释中,它指向Symfony 3的文档。页面显示“您要查找的页面不存在。您可以浏览以下任何资源。“如果我不得不猜测,我可能会怀疑mongodb服务是私有的,需要注入。在你的问题中没有足够的信息。您发布的代码是控制器的一部分吗?你是从AbstractController扩展过来的吗?AbstractController限制对容器的访问。@AlexBlex这是正确的链接(我编辑了我的帖子):@Cerad:我编辑了我的帖子,以包含从本例中获取的完整控制器:唯一有效的链接是在最后一条评论中,它指向Symfony 3的文档。有时它非常简单:)现在我收到一条正确的错误消息,告诉我服务器连接有问题,谢谢!有时很容易:)现在我收到一条正确的错误消息,告诉我服务器连接有问题,谢谢!
class DefaultController extends Controller