0
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 放在 Forms 内的 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:我已经尝试通过更改文件夹和路由以千种方式解决此错误。

4

2 回答 2

0

要简单地启用表单并正确配置资源,请使用 Zend_Tool cli。

在您的命令行或者如果您的 ide 是可兼容的(Netbeans 是)输入命令:

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我注意到您所有的路线都有相同的名称“员工”。如果您希望这些路由中的每一个都真正起作用,它们需要不同的名称。各个网址应该可以工作,但“命名”路线不会。只有堆栈中的最后一条路由有效。

例如:

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

于 2013-03-23T07:02:07.213 回答
-1

您不应将表单类命名为Application_Form_Employee

它应该被命名为Form_Employee。在 Zend 中,你永远不应该在你的类前面加上Application 。

例如,位于 application/Models/Test.php 中的模型应命名为 Model_Test 而不是Application_Model_Test。表格,服务也一样......

于 2013-03-22T10:26:37.797 回答