我得到这个错误我该怎么办?
Fatal error: Class 'forms_AuthForm' not found in C:\dev\workspaces\
adxweb\application\adxsearch\modules\account\controllers\
AuthController.php on line 26
我有一个AuthForm.php
在forms
的文件夹和Authcontroller.php
在controllers
文件夹, auth.phtml
在scripts
文件夹中。
由于克兰
在ZF项目形式的默认路径是APPLICATION_PATH
/表格,是这样的:
-- application
-- forms
AuthForm.php
-- models
-- modules
-- account
-- controllers
AuthController.php
-- views
-- helpers
-- scripts
-- auth
index.phtml
...
如果你想在其它地方你的表格,你需要告诉Zend公司,其中该位置是(它可以在引导完成,或者,我想,在的application.ini)。
此外,请确保您的类是适当命名的,因为它们反映了路径,他们包含在文件中。名称是区分大小写的。
[编辑]
阅读这篇文章: http://bsagols.wordpress.com/2010/08/12/zend_loader_autoloader-stand-alone-and-modular-approaches/ -它描述了那些看似为后(模块化的方法,每个模块的形式)。
这是很长的路要走,虽然各地。 我想解决这个问题的方法是将您的表单application/forms
。 您可以创建模块特定的文件夹在那里,就像这样:
--application
-- forms
-- Auth
Auth.php
你形成了那么类的名称将是Namespace_Form_Auth_Auth
,其中Namespace
为您的应用程序的命名空间。 这种方法不需要修改引导或的application.ini。
尝试$form = new Application_Form_AuthForm()
代替$form = new forms_AuthForm()
在你的控制器文件AuthController.php
并确保您有class Application_Form_AuthForm extends Zend_Form
在你的forms/authform.php
。
如果你想删除的命名空间Application
,然后在你application.ini
文件集appnamespace = "Application"
,以appnamespace =
如果您使用的模块目录结构:
// application/modules/modulename/forms/Name.php
class Modulename_Form_Name extends Zend_Form {
public function init() {
$this->addElements(array(/** */));
}
}
则不需要额外的设置,不同之处resources.modules[]=
在application.ini
和用于模块引导modulename
的模块。