Khi thiết lập ZF2 + ODM, tôi nhận được lỗi sau:Zend Framework 2 + Doctrine ODM, "Lớp học không được tìm thấy trong chuỗi cấu hình không gian tên" lỗi?
The class 'Application\Document\User' was not found in the chain configured namespaces
Các thiết lập hiện tại là như sau:
ZF2 ổn định, học thuyết cài đặt ODM qua composer.phar với nội dung của nhà soạn nhạc .json
{
"name": "zendframework/skeleton-application",
"description": "Skeleton Application for ZF2",
"license": "BSD-3-Clause",
"keywords": [
"framework",
"zf2"
],
"homepage": "http://framework.zend.com/",
"minimum-stability": "dev",
"require": {
"php": ">=5.3.3",
"zendframework/zendframework": "2.0.0",
"doctrine/doctrine-mongo-odm-module": "dev-master"
}
}
module nạp
'modules' => array(
'Application',
'DoctrineModule',
'DoctrineMongoODMModule',
),
Hydrator và proxy dirs được tạo ra
$ ls -l data/DoctrineMongoODMModule/
total 0
drwxrwxrwx 2 wisu staff 68 Sep 12 08:34 Hydrators
drwxrwxrwx 2 wisu staff 68 Sep 12 08:35 Proxy
cấu hình odm trông giống như
'driver' => array(
'odm_default' => array(
'drivers' => array(
'Application\Document' => 'aplikasi'
)
),
'aplikasi' => array(
'class' => 'Doctrine\ODM\MongoDB\Mapping\Driver\AnnotationDriver',
'cache' => 'array',
'paths' => array(
'module/Application/src/Application/Document'
)
)
),
Tôi đang cố gắng sử dụng các bản đồ sau
<?php
namespace Application\Document;
use Doctrine\ODM\MongoDB\Mapping\Annotations as ODM;
/** @ODM\Document(collection="user") */
class User
{
/** @ODM\Id */
private $id;
/** @ODM\Field(type="string") */
private $name;
/**
* @return the $id
*/
public function getId() {
return $this->id;
}
/**
* @return the $name
*/
public function getName() {
return $this->name;
}
/**
* @param field_type $id
*/
public function setId($id) {
$this->id = $id;
}
/**
* @param field_type $name
*/
public function setName($name) {
$this->name = $name;
}
}
nhưng gọi nó qua
<?php
namespace Application\Controller;
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
use Application\Document\User;
class IndexController extends AbstractActionController
{
public function indexAction()
{
$dm = $this->getServiceLocator()->get('doctrine.documentmanager.odm_default');
$user = new User();
$user->setName("Gembul");
$dm->persist($user);
$dm->flush();
return new ViewModel();
}
}
Mọi po giao nhau?
Tôi không nghĩ rằng câu trả lời cung cấp là chính xác. Có ai khác có bất kỳ suy nghĩ về những gì vấn đề có thể được? – Sam152