Я видел ту же самую ошибку, часто размещенную здесь, и прочитал и внесли изменения, основанные на предыдущих вопросах и ответах, безрезультатно.ZF2 - Doctrine2 MongoDB ODM - «Класс не был найден в пространствах имен конфигурации цепей»
Я установил Doctrine в Монго ODM с Zend Framework с помощью Composer и завершить установку, как описано здесь
https://github.com/doctrine/DoctrineMongoODMModule
Я изменил мой /config/autoload/module.doctrine-mongo-odm.local. файл, за рекомендации вышеуказанной документации в попытке исправить мою проблему и на основе ответов на подобные вопросы здесь, так что он теперь выглядит следующим образом
<?php
return array(
'doctrine' => array(
'connection' => array(
'odm_default' => array(
'server' => 'removed.mongolab.com',
'port' => '43957',
'user' => 'removed',
'password' => 'removed',
'dbname' => 'richard',
'options' => array()
),
),
'configuration' => array(
'odm_default' => array(
'metadata_cache' => 'array',
'driver' => 'odm_default',
'generate_proxies' => true,
'proxy_dir' => 'data/DoctrineMongoODMModule/Proxy',
'proxy_namespace' => 'DoctrineMongoODMModule\Proxy',
'generate_hydrators' => true,
'hydrator_dir' => 'data/DoctrineMongoODMModule/Hydrator',
'hydrator_namespace' => 'DoctrineMongoODMModule\Hydrator',
'default_db' => 'richard',
'filters' => array(),
'logger' => null
)
),
'odm_default' => array(
'drivers' => array(
'Application\Document' => 'odm_driver'
)
),
'odm_driver' => array(
'class' => 'Doctrine\ODM\MongoDB\Mapping\Driver\AnnotationDriver',
'cache' => 'array',
'paths' => array(
'module/Application/src/Application/Document'
),
),
'documentmanager' => array(
'odm_default' => array(
'connection' => 'odm_default',
'configuration' => 'odm_default',
'eventmanager' => 'odm_default'
)
),
'eventmanager' => array(
'odm_default' => array(
'subscribers' => array()
)
),
),
);
у меня есть файл/модуль/аппликаций п/SRC/Application/Документ/User.php следующего
<?php
namespace Application\Document;
use Doctrine\ODM\MongoDB\Mapping\Annotations;
class User {
/** @ODM\Id */
private $id;
/** @ODM\Field(type="bin_data_timestamp") */
private $timestamp;
/** @ODM\Field(type="string") */
private $username;
/** @ODM\Field(type="bin_data_md5") */
private $password;
/** @ODM\Field(type="bin_data_uuid") */
private $salt;
/** @ODM\Field(type="string") */
private $realName;
/** @ODM\Field(type="string") */
private $email;
public function getId() {
return $this->id;
}
// ...
public function setId($id) {
$this->id = $id;
}
// ...
}
В моем контроллере, я использую следующий код.
$dm = $this->getServiceLocator()->get('doctrine.documentmanager.odm_default');
$user = new User;
$user->setUsername("test");
$dm->persist($user);
$dm->flush();
Однако я получаю позорный ошибку
The class 'Application\Document\User' was not found in the chain configured namespaces
Любая помощь будет принята с благодарностью.
возможно дубликат [Zend Framework 2 + доктрина ODM, "Класс не был найден в цепи сконфигурировано пространств имен" ошибка?] (Http://stackoverflow.com/questions/12540224/zend-framework-2 -doctrine-ОДМ-The-класс был, не обретенная-в-цепи конфигурируемый) – Maks3w