ZF2在一个控制器中有多种形式


ZF2 many forms in one controller

在ZF2中,我有一个处理5个表单的控制器。这5个表单显示在一个页面上(index),所有表单处理都在indexAction()中根据按下的表单提交按钮进行(一次只提交一个表单)。

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

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

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

有什么帮助吗?

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

如果出现错误,则可以重定向到/controller/allforms页面,并将post-var存储在会话或其他内容中。