Php 处理由一个控制器和操作生成的多个表单的正确方法?

Php 处理由一个控制器和操作生成的多个表单的正确方法?,php,model-view-controller,zend-framework,Php,Model View Controller,Zend Framework,我正在使用Zend框架,我将对我的一些控制器代码进行黑客攻击,以完成一些似乎已经有了模式的事情 当前,当我只有一个表单时,表单的操作指向与生成页面的操作和控制器相同的操作和控制器。然后,控制器的操作函数验证表单,如果验证成功,则执行所需的操作。如果验证失败,它将不执行该操作,并使用已验证的表单重新生成页面,以便错误消息显示在正确的位置 我现在的情况是,我有一个操作/控制器,它创建两个表单和一个要显示的项目列表。该视图显示列表(例如,一个用户列表)并显示表单(添加用户和创建角色-作为示例)。正确的

我正在使用Zend框架,我将对我的一些控制器代码进行黑客攻击,以完成一些似乎已经有了模式的事情

当前,当我只有一个表单时,表单的操作指向与生成页面的操作和控制器相同的操作和控制器。然后,控制器的操作函数验证表单,如果验证成功,则执行所需的操作。如果验证失败,它将不执行该操作,并使用已验证的表单重新生成页面,以便错误消息显示在正确的位置

我现在的情况是,我有一个操作/控制器,它创建两个表单和一个要显示的项目列表。该视图显示列表(例如,一个用户列表)并显示表单(添加用户和创建角色-作为示例)。正确的“Zend框架”方法是什么?每个表单的操作是否都应该指向同一个操作/控制器?如果是,如何处理验证


我的猜测(以及我现在将如何继续)是将两个表单指向控制器,找出提交的表单,仅验证该表单,在验证时执行操作,或者在失败时重新生成视图。

是。让每个表单具有不同的提交名称,并基于此对其进行验证。但请注意,当您验证错误的表单时,将显示错误消息;)所以仔细测试

您可以将这两个表单提交给同一控制器的两个不同操作,并将列表生成提取到第三个方法,然后从indexAction和这两个表单提交操作调用它