zf中的模块自动加载器问题

时间:2011-02-16 10:45:04

标签: php zend-framework

我有3次模样,打击,

 application
        |
        modules
           |
           default
             |---models
             |--views
             |--forms
             |--controller-
                           |-indexController
                           |-errorController
          admin
             |---models-
                        |-user.php
             |--views
             |--forms
             |--controller--
                            |-userController
          cars
             |---models
             |--views
             |--forms
             |--controller

    bootstrap.php

和我的appliction.ini

我有这个配置

resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.modules = ""

在我的bootsrap文件中我有这个自动加载器

$modelLoader = new Zend_Application_Module_Autoloader(array(
                    'namespace' => '',
                    'basePath' => APPLICATION_PATH ));

所以我无法访问userController和其他控制器中的我的模型类

我在userController中有这段代码

$userModel = new admin_Model_Users();

但我得错误找不到这个班级

,此类位于user.php

class admin_Model_Users extends Zend_Db_Table_Abstract
{


 public function getListUser() {


    }
}

有人可能会帮助我的错误,以及如何解决这个问题?

3 个答案:

答案 0 :(得分:3)

摆脱

 $modelLoader = new
 Zend_Application_Module_Autoloader(array(
                     'namespace' => '',
                     'basePath' => APPLICATION_PATH ));

并添加 你模块中的Bootstrap.php:

class Admin_Bootstrap extends Zend_Application_Module_Bootstrap
{

}

还将您的班级命名为Admin_Model_Users并在适当的地方使用它。 在文件名中使用大写“U”,在类名中使用大写“A”。我的意思是名称应该符合ZF指南。

同样在ini文件中: 将条目更改为

resources.modules[] =

答案 1 :(得分:0)

尝试以下方法:

class admin_Model_Users extends Zend_Db_Table_Abstract

应该成为

class Models_UsersAdmin extends Zend_Db_Table_Abstract


$userModel = new admin_Model_Users();

应该成为

$userModel = new Models_UsersAdmin();


更新

在您的application.ini文件中,您注册了名称空间,添加以下行: autoloaderNamespaces[] = "Models"(或在bootstrap注册名称空间“Models”)

答案 2 :(得分:0)

;define modules after controller in application.ini file
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"