Zend framework ZendFramework&;第2条及;MongoDb-找不到实体

Zend framework ZendFramework&;第2条及;MongoDb-找不到实体,zend-framework,mongodb,doctrine-orm,Zend Framework,Mongodb,Doctrine Orm,我试图将mongoDB与Zend框架和学说相结合。 到目前为止,整合效果良好。 我唯一的问题是找不到我的实体(对应于我收到的错误消息) 错误是: Warning: class_parents() [function.class-parents]: Class User does not exist and could not be loaded in /Applications/XAMPP/xamppfiles/htdocs/project/library/Doctrine/ODM/MongoD

我试图将mongoDB与Zend框架和学说相结合。 到目前为止,整合效果良好。 我唯一的问题是找不到我的实体(对应于我收到的错误消息)

错误是:

Warning: class_parents() [function.class-parents]: Class User does not exist and could not be loaded in /Applications/XAMPP/xamppfiles/htdocs/project/library/Doctrine/ODM/MongoDB/Mapping/ClassMetadataFactory.php on line 336
Warning: array_reverse() expects parameter 1 to be array, boolean given in /Applications/XAMPP/xamppfiles/htdocs/project/library/Doctrine/ODM/MongoDB/Mapping/ClassMetadataFactory.php on line 336
Warning: Invalid argument supplied for foreach() in /Applications/XAMPP/xamppfiles/htdocs/project/library/Doctrine/ODM/MongoDB/Mapping/ClassMetadataFactory.php on line 336
Fatal error: Uncaught exception 'Zend_Controller_Response_Exception' with message 'Cannot send headers; headers already sent in /Applications/XAMPP/xamppfiles/htdocs/project/library/Doctrine/ODM/MongoDB/Mapping/ClassMetadataFactory.php, line 336' in /Applications/XAMPP/xamppfiles/htdocs/project/library/Zend/Controller/Response/Abstract.php:323 Stack trace: #0 /Applications/XAMPP/xamppfiles/htdocs/project/library/Zend/Controller/Response/Abstract.php(341): Zend_Controller_Response_Abstract->canSendHeaders(true) #1 /Applications/XAMPP/xamppfiles/htdocs/project/library/Zend/Controller/Response/Abstract.php(768): Zend_Controller_Response_Abstract->sendHeaders() #2 /Applications/XAMPP/xamppfiles/htdocs/project/library/Zend/Controller/Front.php(992): Zend_Controller_Response_Abstract->sendResponse() #3 /Applications/XAMPP/xamppfiles/htdocs/project/library/Zend/Application/Bootstrap/Bootstrap.php(97): Zend_Controller_Front->dispatch() #4 /Applications/XAMPP/xamppfiles/htdocs/project/library/Zend/Application.php(366): Zend_Applic in /Applications/XAMPP/xamppfiles/htdocs/project/library/Zend/Controller/Response/Abstract.php on line 323
My application.ini:

[production]
; PHP settings
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0

; Set Plugin path for Lupi mongoodm resource
pluginPaths.Lupi_Resource = APPLICATION_PATH "/../Library/Lupi/Resource"

; Library include paths & namespaces
includePaths.library = APPLICATION_PATH "/../library"
autoloaderNamespaces[] = "Lupi\"
autoloaderNamespaces[] = "Doctrine\"
autoloaderNamespaces[] = "Symfony\"

; Bootstrap options
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"

; Applicaiton Setup
appnamespace = "Application"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.params.displayExceptions = 0

; ODM settings
resources.odm.documents.dir = APPLICATION_PATH "/models/Entities"
resources.odm.documents.namespace = "Application"
resources.odm.config.proxyDir = APPLICATION_PATH "/models/Proxies"
resources.odm.config.proxyNamespace = "proxies"
resources.odm.config.hydratorDir = APPLICATION_PATH "/models/Hydrators"
resources.odm.config.hydratorNamespace = "hydrators"


[staging : production]

[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1

[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1
我的Bootstrap.php是空的。 此外,我还有来自github上示例的操作控制器和资源

My User.php:

<?php

 namespace Entities;

 /**
  * @Document(collection="users")
  */
  class User {

    /**
     * @Id
     */
    private $id;

/**
 * @String
 */
private $username;

/**
 * @String
 */
    private $email;

您将在上面的两行配置中看到:

resources.odm.documents.dir=应用程序路径“/模型/实体” resources.odm.documents.namespace=“应用程序”

它正在Application/models/entities文件夹中查找名称空间为“Application”的文档(实体)(在我将实体的e小写时,您似乎已对其进行了编辑)

您的名称空间似乎是实体,这意味着它正在寻找错误的名称空间。 任何一个 a) 更改文档以适应配置,使Application\User位于Application/models/Entities/Application/User.php或。。。 b) 更改配置以适合您的文档,使“resources.odm.documents.namespace=“Application”变为“resources.odm.documents.namespace=“Entites”


感谢您抽出时间观看我的网络研讨会,并下载该项目,我希望您能从中获得信息

您将在上面的两行配置中看到:

resources.odm.documents.dir=应用程序路径“/模型/实体” resources.odm.documents.namespace=“应用程序”

它正在Application/models/entities文件夹中查找名称空间为“Application”的文档(实体)(在我将实体的e小写时,您似乎已对其进行了编辑)

您的名称空间似乎是实体,这意味着它正在寻找错误的名称空间。 任何一个 a) 更改文档以适应配置,使Application\User位于Application/models/Entities/Application/User.php或。。。 b) 更改配置以适合您的文档,使“resources.odm.documents.namespace=“Application”变为“resources.odm.documents.namespace=“Entites”


感谢您抽出时间观看我的网络研讨会,并下载该项目,我希望您能从中获得信息

首先感谢您的回复!你提到的东西对我来说似乎是正确和合理的,我根据你的描述对它们进行了更改,但没有更改:(之后,我将你的项目中的所有内容以1:1的比例复制到了我的项目中(以及包含其类的entities文件夹),但我仍然遇到了这个错误。我真的不明白:(首先感谢您的回复!您提到的内容对我来说似乎是正确和合理的,我根据您的描述对它们进行了更改,但没有更改:(之后,我将您的项目中的所有内容(以及包含其类的entities文件夹)以1:1的比例复制到了我的项目中,但仍然出现了此错误。我真的不明白:(
<?php

 class RegistrationController extends Lupi\Controller\Action {

    /**
     * @var \Doctrine\ODM\MongoDB\DocumentRepository
     */
    protected $repository;

public function init() {
    $this->repository = $this->dm->getRepository('User');
}