没有找到的Zend Form类错误(Zend Form class not found error)

2019-09-25 15:21发布

我得到这个错误我该怎么办?

Fatal error: Class 'forms_AuthForm' not found in C:\dev\workspaces\
adxweb\application\adxsearch\modules\account\controllers\
AuthController.php on line 26

我有一个AuthForm.phpforms的文件夹和Authcontroller.phpcontrollers文件夹, auth.phtmlscripts文件夹中。

由于克兰

Answer 1:

在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。



Answer 2:

尝试$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 =



Answer 3:

如果您使用的模块目录结构:

// application/modules/modulename/forms/Name.php
class Modulename_Form_Name extends Zend_Form {
   public function init() {
     $this->addElements(array(/** */));
   }
}

则不需要额外的设置,不同之处resources.modules[]=application.ini和用于模块引导modulename的模块。



文章来源: Zend Form class not found error