【发布时间】:2012-08-30 22:47:04
【问题描述】:
我尝试了很多不同的方法来解决这个问题,我在网上找到了但它们都没有奏效,所以请有人帮助我。
我收到这个错误
致命错误:在第 13 行的 pathToProject/modules/admin/controllers/LoginController.php 中找不到类“Admin_Form_Login”
我的项目是
应用
--- 模块
--------管理员
--------控制器
--------表格
--------型号
--------观看次数
------默认
--------控制器
--------表格
--------型号
--------观看次数
------关于我们
--------控制器
--------表格
--------型号
--------观看次数 ETC 等等
我的控制器
class Admin_LoginController extends Zend_Controller_Action
{
public function init()
{
/* Initialize action controller here */
}
public function indexAction()
{
$form = new Admin_Form_Login();
$this->view->form = $form;
// action body
}
}
我的表格
class Admin_Form_Login extends Zend_Form
{
public function init()
{
/* Form Elements & Other Definitions Here ... */
$this->setAction("/admin/index/login")->setMethod("post");
$username = new Zend_Form_Element_Text('username');
$username->setLabel('Username')
->setOptions(array('size' => '30'));
$password = new Zend_Form_Element_Password('password');
$password->setLabel('Password')
->setOptions(array('size' => '30'));
$submit = new Zend_Form_Element_Submit('submit');
$submit->setLabel('Log in')
->setOptions(array('class' => 'submit'));
$this->addElement($username)
->addElement($password)
->addElement($submit);
}
}
我的 Bootstrap.php
class Admin_Bootstrap extends Zend_Application_Module_Bootstrap
{
protected function _initAutoload() {
$autoloader = new Zend_Application_Module_Autoloader(array(
'namespace' => 'Admin_',
'basePath' => APPLICATION_PATH."/modules/admin",
));
return $autoloader;
}
}
这是我的 App ini 可能里面有什么
[bootstrap]
Autoloadernamespaces[] = "Admin_"
Autoloadernamespaces[] = "Default_"
Autoloadernamespaces[] = "Aboutus_"
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.frontController.defaultModule = "default"
resources.modules[] = ""
resources.view.encoding = "UTF-8"
resources.view.basePath = APPLICATION_PATH "/views/"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
includePaths.library = APPLICATION_PATH "/../library"
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.frontController.params.prefixDefaultModule = "1"
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/"
admin.resources.layout.layout = layout
admin.resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/"
default.resources.layout.layout = default
default.resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/"
[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
我的看法
$this->form
感谢您的帮助。
我在生产部分中添加了以下内容,我的 application.ini 并开始工作不知道为什么。
Autoloadernamespaces[] = "Admin_"
Autoloadernamespaces[] = "Default_"
Autoloadernamespaces[] = "Aboutme_"
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.frontController.defaultModule = "default"
resources.modules[] = ""
resources.view.encoding = "UTF-8"
resources.view.basePath = APPLICATION_PATH "/views/"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
【问题讨论】:
-
你的
Admin_Bootstrap,大概存储在application/modules/admin/Bootstrap.php,扩展了Zend_Application_Module_Bootstrap,它注册了自己的资源自动加载器。您可能可以删除您的自定义Admin_Bootstrap::_initAutoload()方法。 -
你的表单课在
application/modules/admin/forms/Login.php吗? -
是的,它位于 application/modules/admin/forms/Login.php