我在MVC zend框架中完成了我的第一个Web应用程序,一切都在我的localhost上运行良好。
所以我把它上传到服务器上,自动加载我的课有问题。 当我想在indexcontroller中从我的类创建对象时,我收到错误消息:
$this->view->bottomCache = new Application_Model_Cache($this->cacheTime,'bottomCache');
我得到这个错误的消息:
Fatal error: Class 'Application_Model_Cache' not found in ........./IndexController.php on line 19
在我的本地主机上,我使用的是Zend Server CE,它可以运行。
拜托,你能给我一些建议吗,我会检查一下,知道它为什么不起作用?
解决: 类的名字的第一个字母必须是大写的,Cache.php
EDIT2: 文件夹模型与模型 正如您在此example
中看到的那样// application/models/Guestbook.php class Application_Model_Guestbook {
EDIT1: 我在http://framework.zend.com/manual/en/learning.quickstart.create-project.html上使用了教程,所以我使用了文件结构。
quickstart |-- application | |-- Bootstrap.php | |-- configs | | `-- application.ini | |-- controllers | | |-- ErrorController.php | | `-- IndexController.php | |-- models | | |-- cache.php | | `-- DbTable | | `-- Downloaded.php | `-- views | |-- helpers | `-- scripts | |-- error | | `-- error.phtml | `-- index | `-- index.phtml |-- library |-- public | |-- .htaccess | `-- index.php
bootstrap.php中 在我的靴带我有:
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap { protected function _initAutoload() { $autoloader = new Zend_Application_Module_Autoloader(array( 'namespace' => 'Application_', 'basePath' => dirname(__FILE__), ));; $autoloader->addResourceType('model', 'model/', 'Model'); return $autoloader; } protected function _initDoctype() { $this->bootstrap('view'); $view = $this->getResource('view'); $view->doctype('XHTML1_TRANSITIONAL'); } }
的application.ini
[production] phpSettings.display_startup_errors = 0 phpSettings.display_errors = 0 includePaths.library = APPLICATION_PATH "/../library" bootstrap.path = APPLICATION_PATH "/Bootstrap.php" bootstrap.class = "Bootstrap" appnamespace = "Application" resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers" resources.frontController.params.displayExceptions = 0 resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/" phpSettings.date.timezone = "Europe/London" resources.db.adapter = PDO_MYSQL resources.db.params.host = localhost resources.db.params.username = ***** resources.db.params.password = **** resources.db.params.dbname = ***** resources.db.params.charset = "utf8" resources.db.params.names = "utf8" resources.view.doctype = "XHTML1_TRANSITIONAL" [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
答案 0 :(得分:1)
EDIT2: 你必须调用你的cache.php文件Cache.php。它的情况是敏感的。试试吧。
编辑:在你的结构中它是一个Models(见s)文件夹。您使用
调用该类Application_Model_Cache
所以ZF正在application / model /.
中寻找它所以将你的班级改为
Application_Models_Cache
不要忘记在类代码中执行此操作。 或者将文件夹名称更改为模型(似乎是所有代码引用模型,因此更改文件夹似乎是最快捷的方式。
答案 1 :(得分:0)
你的类是Application_Model_Cache,应该在./application/models上找到文件名 应该是Cache.php。