Php Silex&x2B;Couchdb+;DoctrineCouchDbODM
祝大家圣诞快乐 我正试图在silex php项目中使用couchdb ODM原则。我已经让它工作,但与沙发,它不断打破 我在网上搜索了好几天,但什么也没找到。我会说得很具体,我一直在犯这个有趣的错误Php Silex&x2B;Couchdb+;DoctrineCouchDbODM,php,symfony,doctrine-orm,couchdb,silex,Php,Symfony,Doctrine Orm,Couchdb,Silex,祝大家圣诞快乐 我正试图在silex php项目中使用couchdb ODM原则。我已经让它工作,但与沙发,它不断打破 我在网上搜索了好几天,但什么也没找到。我会说得很具体,我一直在犯这个有趣的错误 类包\文档\用户不是有效的文档或映射的超类。 在调试时,我注意到在doctor/ODM/CouchDB/Mapping/Driver/AnnotationDriver.php第55行中有这个调用 $classAnnotations=$this->reader->getClassAnnotation
类包\文档\用户不是有效的文档或映射的超类。
在调试时,我注意到在doctor/ODM/CouchDB/Mapping/Driver/AnnotationDriver.php第55行中有这个调用
$classAnnotations=$this->reader->getClassAnnotations($reflClass)代码>
返回一个空数组。我猜我的配置可能有问题,但似乎无法指出
任何帮助都将不胜感激
更新
配置CouchDB ODM。我创建了两个服务提供商。1用于CouchDB,另一个用于CouchDB ODM,以Silex中默认的DoctrineServiceProvider
为模型
CouchDB服务提供商
并在config/prod.php
$app->register(new DoctrineCouchDbServiceProvider());
$app->register(new DoctrineCouchDbOdmServiceProvider());
$app['couchdb.options'] = [
'dbname' => 'app_db',
'type' => 'socket',
'host' => 'localhost',
'port' => 5984,
'user' => null,
'password' => null,
'ip' => null,
'logging' => true
];
$app['couchdb.dm.options'] = [
'mappings' => [
[
'type' => 'annotation',
'namespace' => 'Package\documents',
'path' => __DIR__.'/../src/package/documents'
],
]
];
我的文件
让我们看看您的条令配置,以证明您对错误可能原因的感觉。@Llaball,我已经更新了问题。感谢您的帮助。让我们看看您的条令配置,以证明您对错误可能原因的感觉。@Llaball,我已经更新了问题。谢谢你的帮助。
$app->register(new DoctrineCouchDbServiceProvider());
$app->register(new DoctrineCouchDbOdmServiceProvider());
$app['couchdb.options'] = [
'dbname' => 'app_db',
'type' => 'socket',
'host' => 'localhost',
'port' => 5984,
'user' => null,
'password' => null,
'ip' => null,
'logging' => true
];
$app['couchdb.dm.options'] = [
'mappings' => [
[
'type' => 'annotation',
'namespace' => 'Package\documents',
'path' => __DIR__.'/../src/package/documents'
],
]
];
<?php
namespace Package\documents;
use Doctrine\ODM\CouchDB\Mapping\Annotations as CouchDB;
use Gedmo\Mapping\Annotation as Gedmo;
use Doctrine\Common\Collections\ArrayCollection;
// Have tried @CouchDB\Document as well
/**
* @Document(repositoryClass="repositories\ZoneRepository")
*/
class Zone {
/**
* @Id(type="string")
*/
protected $id;
/**
* @Field(type="string", indexed=true)
*/
protected $slug;
/**
* @Field(type="string", jsonName="name", indexed=true)
*/
protected $name;
/** @Field(type="boolean", jsonName="enabled") */
protected $enabled;
}