Zend框架中的表单问题

时间:2013-03-22 09:57:17

标签: php zend-framework zend-form zend-framework-routing

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文件夹中,该文件夹位于Forms中。 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

请说明是否还需要其他信息//////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// /////////////////////////                                                                                                                                                                                 P.S:我试图通过改变文件夹和路由来解决这个错误。

3 个答案:

答案 0 :(得分:0)

我认为这个链接可以帮助你使用Zend_Form。

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

答案 1 :(得分: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配置。

P.S。我注意到您的所有路线都具有相同的名称“员工”。如果您希望每条路线都能正常工作,它们需要不同的名称。个人网址应该有效,但“命名”路线不会。只有堆栈中的最后一条路线才能正常工作。

例如:

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

每个“命名”路线应具有唯一名称和唯一网址。

答案 2 :(得分:-1)

您不应将表单类命名为 Application_Form_Employee

应将其命名为 Form_Employee 。你永远不应该在Zend中使用应用程序作为前缀。

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