Php 配置Symfony doctrinecouchdbundle
我是Symfony 2的新手,在建立学说方面有困难。在尝试持久化模型时,我遇到以下错误:在链配置的命名空间中找不到类“Foo” 我有一个引导文件,它需要Composer自动加载程序,并向AnnotationRegistry注册此加载程序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
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;
有时文档不是最好的。。。因为在快速脏启动的例子中没有人告诉你这一点