Я использую couchDb в Symfony 2.7.2.
У меня есть несколько сомнений.
Теперь я установил это сверток
И я создаю одну сущность для тестирования
<?php
namespace foo\GarageBundle\Document;
use Doctrine\ODM\CouchDB\Mapping\Annotations as CouchDB;
/**
* @CouchDB\Document
*/
class Utente
{
/** @CouchDB\Id */
private $id;
/** @CouchDB\Field(type="string") */
private $nome;
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Set nome
*
* @param string $nome
* @return Utente
*/
public function setNome($nome)
{
$this->nome = $nome;
return $this;
}
/**
* Get nome
*
* @return string
*/
public function getNome()
{
return $this->nome;
}
}
В моем контроллере я добавил этот код
$dm = $this->container->get('doctrine_couchdb.client.default_connection');
$doc = $this->container->get('doctrine_couchdb.odm.default_document_manager');
try{
$dm->createDatabase($dm->getDatabase());
}catch(\Exception $e){
$msg = $e->getMessage();
}
$user = new Utente();
$user->setNome('foo');
$doc->persist($user);
$doc->flush();
мой config.yml
doctrine_couch_db:
client:
default_connection: default
connections:
default:
dbname: symfony2
odm:
default_document_manager: default
document_managers:
default:
auto_mapping: true
С контроллером я создал базу данных, но я не могу вставить новый документ, я получил эту ошибку
The class 'foo\GarageBundle\Document\Utente' was not found in the chain configured namespaces
И я не понимаю, почему полезно использовать комплект как то, что я использую (я знаю, что это может быть глупым вопросом), и почему я должен использовать * @CouchDB\Document
вместо @Document
внутри моей сущности?
Кажется, проблема связана с пространством имен класса сущностей.
Автопоиск регистрируется подпространство имен CouchDocument из
ваш пакет, а не документ (который автоматически сопоставляется
DoctrineMongoDBBundle)
Так что используйте другое пространство имен для User
class и другой Counch, который вы используете, следующим образом:
namespace foo\GarageBundle\CouchDocument;
Особенно:
<?php
namespace foo\GarageBundle\CouchDocument;
use Doctrine\ODM\CouchDB\Mapping\Annotations as CouchDB;
/**
* @CouchDB\Document
*/
class Utente
{
Надеюсь это поможет
Увидеть это обсуждение на GitHub.
/**
* @CouchDB\Document
* @CouchDB\Index
*/
class Utente
{