Php 配置Symfony doctrinecouchdbundle

Php 配置Symfony doctrinecouchdbundle,php,symfony-2.4,Php,Symfony 2.4,我是Symfony 2的新手,在建立学说方面有困难。在尝试持久化模型时,我遇到以下错误:在链配置的命名空间中找不到类“Foo” 我有一个引导文件,它需要Composer自动加载程序,并向AnnotationRegistry注册此加载程序 use Doctrine\Common\Annotations\AnnotationRegistry; $loader = require "vendor/autoload.php"; AnnotationRegistry::registerLoader(arr

我是Symfony 2的新手,在建立学说方面有困难。在尝试持久化模型时,我遇到以下错误:在链配置的命名空间中找不到类“Foo”

我有一个引导文件,它需要Composer自动加载程序,并向AnnotationRegistry注册此加载程序

use Doctrine\Common\Annotations\AnnotationRegistry;
$loader = require "vendor/autoload.php";
AnnotationRegistry::registerLoader(array($loader, "loadClass"));
我已经在config.yml中配置了CouchDB

doctrine_couch_db:
  client:
    connections:
      default:
        dbname: foo
        host: data.foo
        port: 5984
  odm:
    document_managers:
      default:
        connection: default
我的模型带有注释标记

use Doctrine\ODM\CouchDB\Mapping\Annotations as ODM;

/**
 * Model object for foo data.
 * @ODM\Document
 */
class Foo {
    ...
}
我有一个ContainerWareCommand,我用它来获取Doctrine ObjectManager

$dm = $this->getContainer()->get("doctrine_couchdb.odm.default_document_manager");
但是当我努力坚持的时候

$dm->persist(new Foo());
我犯了一个错误

The class 'Foo' was not found in the chain configured namespaces

编辑:进一步调查后,MappingDriverCain为空。驱动程序数组中没有defaultDriver和值。我不知道这是怎么形成的,但这似乎是根本问题。

基本上,我花了两个小时自己解决了这个问题。 您必须将实体放入CouchDocument文件夹,而不是实体文件夹,以便自动加载

其次,我需要将我的包添加到manager配置中,如下所示:

doctrine_couch_db:
  client:
    dbname: sddb
  odm:
    document_managers:
      default:
        mappings:
          SDDBBundle:
            type: annotation
        auto_mapping: true
文档的命名空间如下所示:

namespace SDDB\SDDBBundle\CouchDocument;
有时文档不是最好的。。。因为在快速脏启动的例子中没有人告诉你这一点