Vla*_*viy 5 mongodb symfony doctrine-orm
我试图以这种方式连接Symfony 2和MongoDB:
AppKernel::registerBundlesdoctrine_mongo_db'配置(见下文config.yml)doctrine.odm.mongodb.document_manager从容器"
HelloController行动当我尝试运行应用程序时抛出MongoConnectionException.
任何人都可以帮我解决这个问题吗?
AppKernel.php
public function registerBundles()
{
$bundles = array(
new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
new Symfony\Bundle\TwigBundle\TwigBundle(),
new Symfony\Bundle\DoctrineMongoDBBundle\DoctrineMongoDBBundle(),
new Sensio\HelloBundle\HelloBundle()
);
return $bundles;
}
Run Code Online (Sandbox Code Playgroud)
config.yml
framework:
charset: UTF-8
router: { resource: "%kernel.root_dir%/config/routing.yml" }
templating: { engines: ['twig'] }
## Doctrine Configuration
doctrine_mongo_db:
server: mongodb://root:root@192.168.0.111:27017
default_database: test
options: { connect: true }
mappings:
HelloBundle: { type: annotation, dir: Document }
# Twig Configuration
twig:
debug: %kernel.debug%
strict_variables: %kernel.debug%
Run Code Online (Sandbox Code Playgroud)
HelloController.php
/* @var $dm \Doctrine\ODM\MongoDB\DocumentManager */
$dm = $this->get('doctrine.odm.mongodb.document_manager');
Run Code Online (Sandbox Code Playgroud)
例外(第96行)
connecting to failed: Transport endpoint is not connected
in ~/vendor/doctrine-mongodb/lib/Doctrine/MongoDB/Connection.php line 96 »
93. if ($this->server) {
94. $this->mongo = new \Mongo($this->server, $this->options);
95. } else {
96. $this->mongo = new \Mongo();
97. }
Run Code Online (Sandbox Code Playgroud)
问题出在 DoctrineMongoDBBundle 配置加载中。修复程序(https://github.com/fabpot/symfony/pull/740)应该很快就会被合并。
现在您可以使用下面的固定方法。
public function load(array $configs, ContainerBuilder $container)
{
$mergedConfig = array();
foreach ($configs as $config) {
$mergedConfig = array_merge_recursive($mergedConfig, $config);
}
$this->doMongodbLoad($mergedConfig, $container);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4197 次 |
| 最近记录: |