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サーバーの接続が機能せず、何らかの理由でログに記録されず、サービスがロードされないことがありますか?
ページhttp://symfony.com/doc/current/bundles/DoctrineMongoDBBundle/index.htm "あなたが探しているページは存在しません。あなたが代わりに以下のいずれかのリソースを閲覧することが*と言います。 "* –
私が推測しなければならないのは、mongodbサービスがプライベートであり、注入する必要があると思われるかもしれません。あなたの質問に十分な情報がありません。投稿したコードはコントローラの一部ですか? AbstractControllerから拡張しましたか? AbstractControllerはコンテナへのアクセスを制限します。 – Cerad
@AlexBlexこれは正しいリンクです(私は自分の投稿を編集しました):http://symfony.com/doc/current/bundles/DoctrineMongoDBBundle/index.ht – Fels