2017-12-01 3 views
0

MongoDBで新しいSymfony4プロジェクトを作成しようとしています。symfony 4とMongoDB /サービスを使用している新しいプロジェクトが見つかりません

まず私は、この文書を使用してSymfony4プロジェクトを作成: https://symfony.com/doc/current/setup.html

その後、私は、このマニュアルを使用するMongoDBを含ま: http://symfony.com/doc/current/bundles/DoctrineMongoDBBundle/index.html

私はできるだけ正確(例えばI」のdidnのよう指示に従ってみましたapp/AppKernel.phpに何かを追加する必要がありますが、MongoDBは自動的にconfig/bundles.phpに追加されました。

は今、私はすべてが動作するはずと思いますが、MongoDBのサービスを見つけることができません私のsymfonyのアプリ:

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サーバーの接続が機能せず、何らかの理由でログに記録されず、サービスがロードされないことがありますか?

+0

ページhttp://symfony.com/doc/current/bundles/DoctrineMongoDBBundle/index.htm "あなたが探しているページは存在しません。あなたが代わりに以下のいずれかのリソースを閲覧することが*と言います。 "* –

+0

私が推測しなければならないのは、mongodbサービスがプライベートであり、注入する必要があると思われるかもしれません。あなたの質問に十分な情報がありません。投稿したコードはコントローラの一部ですか? AbstractControllerから拡張しましたか? AbstractControllerはコンテナへのアクセスを制限します。 – Cerad

+0

@AlexBlexこれは正しいリンクです(私は自分の投稿を編集しました):http://symfony.com/doc/current/bundles/DoctrineMongoDBBundle/index.ht – Fels

答えて

1

代わりに "Controller"から "AbstractController"に拡張してみてください。

class DefaultController extends Controller 
+0

時にはそれがとても簡単になることがあります:)私は、私のサーバー接続に何か間違っていることを伝える適切なエラーメッセージを受け取りました。ありがとう! – Fels

関連する問題