Класс Zend Form не найден - PullRequest
       2

Класс Zend Form не найден

1 голос
/ 25 февраля 2011

Я получаю эту ошибку, что мне делать?

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 папка.

Спасибо Киран

Ответы [ 3 ]

1 голос
/ 25 февраля 2011

Попробуйте $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 =

1 голос
/ 26 февраля 2011

Если вы используете модульную структуру каталогов:

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

Тогда дополнительная настройка не требуется, кроме resources.modules[]= in application.ini и начальной загрузки модуля для modulename module.

1 голос
/ 25 февраля 2011

Путь по умолчанию для форм в проектах ZF: APPLICATION_PATH / forms, например:

-- application
    -- forms
        AuthForm.php
    -- models
    -- modules
        -- account
            -- controllers
                AuthController.php
            -- views
                -- helpers
                -- scripts
                    -- auth
                        index.phtml
                        ...

Если вы хотите разместить свои формы в другом месте, вам нужно сообщить Zend, где это место (это можно сделать в начальной загрузке или, я думаю, в application.ini).

Кроме того, убедитесь, что ваши классы имеют соответствующие имена, так как они отражают пути к файлам, в которых они содержатся. Имена чувствительны к регистру.

[EDIT]

Прочтите эту статью: 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.

...