ZF2在一个控制器中形成许多形式

时间:2016-04-04 20:21:02

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

在ZF2中,我有一个处理5种形式的控制器。 5个表单显示在单个页面上(index),并且所有表单处理都在indexAction()基于表单的提交按钮被推送(一次只提交一个表单)。

对我来说,在一个控制器中有很多表单很难看,因为处理逻辑不简单(基于提交按钮的值太多if-elseif,许多服务通过注入到控制器中控制器工厂)。

如何从控制器中获取依赖项以简化控制器逻辑并减少依赖项的数量?但是我仍然需要在一个页面上使用5个表单,并且需要根据推送的提交按钮处理表单。

我想为单个表单创建一个控制器(控制器通过工厂获取表单),但不知道如何将多个控制器填充到单个视图中。另一种选择是使用处理专用表单的操作(一个操作=>一个表单),但仍然保持控制器中的许多表单依赖关系。

任何帮助?

1 个答案:

答案 0 :(得分:0)

最好的解决方案可能是将所有发布表单路由到不同的URL。您可以将form1发布到/ controller / form1process,将form2发布到/ controller / form2process。然后,所有表单处理仍然可以在一个控制器中,但每个表单的逻辑被分成不同的功能。

如果有错误,那么您可以重定向到/ controller / allforms页面并将post vars存储在会话中。