Проблемы с формами в Zend Framework

I am getting the following error :
 Fatal error: Class 'Application_Form_Employee' not found in /var/www/Employee/application/controllers/EmployeeController.php on line 31 

Я создал отдельную папку для форм в приложениях и поместил форму Employee.php в папку Employee, которая находится внутри форм. Маршрутизация в application.ini показана ниже: resources.router.routes.employee.route = /employee

      resources.router.routes.employee.defaults.module = default           

  resources.router.routes.employee.defaults.controller = Employee

  resources.router.routes.employee.defaults.action = new  
   resources.router.routes.employee.route = /employee

resources.router.routes.employee.defaults.module = default           

resources.router.routes.employee.defaults.controller = Employee

resources.router.routes.employee.defaults.action = edit
resources.router.routes.employee.route = /employee

resources.router.routes.employee.defaults.module = default           

resources.router.routes.employee.defaults.controller = Employee

 resources.router.routes.employee.defaults.action = index

Пожалуйста, уточните, требуется ли какая-либо дополнительная информация /////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////// PS: Я пытался решить эту ошибку тысячами способов, изменяя папки и маршрутизацию.

3 ответа

Решение

Чтобы просто включить формы и правильно настроить ресурс, используйте cli Zend_Tool.

В командной строке или, если ваш ide совместим (Netbeans is), введите команду:

zf enable form

это создаст правильный каталог для уровня приложения и форм пространства имен приложения.

При использовании форм уровня приложения к имени класса будет добавляться префикс Application_Form_ и файл будет существовать в

/application
    /forms
        /Myform.php

Если вам нужны формы в модуле, просто измените команду, чтобы отразить имя модуля:

zf enable form -m admin

почти все команды в Zend_Tool cli могут использовать ключ -m для указания имени модуля.

ZF1 имеет ряд предопределенных ресурсов, которые имеют свои собственные пространства имен класса Zend_Application_Module_Autoloader имеет полный список пространств имен по умолчанию вместе с путем по умолчанию для каждого.

Этот ответ предполагает, что настройки вашего приложения достаточно близки к конфигурации по умолчанию ZF1.

PS Я заметил, что все ваши маршруты имеют одно и то же имя "сотрудник". Если вы хотите, чтобы каждый из этих маршрутов действительно работал, им нужны разные имена. Отдельные URL должны работать, но "названные" маршруты не будут работать. Будет работать только последний маршрут в стеке.

например:

//4 lines equals one route
resources.router.routes.employee.route = /employee
resources.router.routes.employee.defaults.module = default           
resources.router.routes.employee.defaults.controller = Employee
resources.router.routes.employee.defaults.action = index


//this route might work better as
resources.router.routes.editEmployee.route = /employee/edit
resources.router.routes.editEmployee.defaults.module = default           
resources.router.routes.editEmployee.defaults.controller = Employee
resources.router.routes.editEmployee.defaults.action = edit

Каждый "именованный" маршрут должен иметь уникальное имя и уникальный URL.

Я думаю, что эта ссылка вам очень поможет при использовании Zend_Form.

http://framework.zend.com/manual/1.12/en/zend.form.quickstart.html

Вы не должны называть свой класс формы Application_Form_Employee.

Это должно быть названо Form_Employee. Вы никогда не должны добавлять в свой класс приложение в Zend.

Например, модель, расположенная внутри application/Models/Test.php, должна называться Model_Test, а не Application_Model_Test. То же самое для форм, услуг...

Другие вопросы по тегам