我在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,它在那里工作 .
拜托,你能给我一些建议,我会检查一下,知道它为什么不起作用?
SOLVED: 类的名字的第一个字母必须是大写的,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
2 回答
Edit2:你必须调用你的cache.php文件Cache.php . 它的情况是敏感的 . 试试吧 .
编辑:在你的结构中它是一个模型(见s)文件夹 . 你用这个调用类
所以ZF正在application / model /中寻找它 .
所以把你的 class 改为
不要忘记在类代码中执行此操作 . 或者将文件夹名称更改为模型(似乎所有代码引用模型,因此更改文件夹似乎是最快的方式 .
您的类是Application_Model_Cache,应该在./application/models上找到,其中文件名应该是Cache.php .