0

In ZF2, I have a controller that handles 5 forms. The 5 forms get displayed on a single page (index), and all the forms processing happens in the indexAction() based on a form's submit button pushed (just one form is submitted at a time).

To me, having many forms in a single controller is ugly because the processing logic isn't simple (too many if-elseif's based on the value of the submit button, many services injected into the controller through the controller factory).

How can I get the dependencies out of the controller to simplify the controller logic and reduce the number of dependencies? But I still need 5 forms on a single page, and need to process a form based on the submit button pushed.

I thought of creating a single controller for a single form (controller gets the form via factory), but have no idea how to stuff multiple controllers into a single view. Another option is to have actions that process dedicated forms (one action => one form), but that still keeps to many form dependencies in the controller.

Any help?

Dima Dz
  • 512
  • 1
  • 5
  • 17

1 Answers1

0

Probably the best solution is to route all the posting forms to a different URL. You can post form1 to /controller/form1process and form2 to /controller/form2process. Then all form handling can be still in one controller but the logic per form is separated into different functions.

If there are errors then you can redirect to the /controller/allforms page and store the post vars in a session or something.

jhofste
  • 36
  • 3