В ZF2 у меня есть контроллер, который обрабатывает 5 форм. 5 форм отображаются на одной странице (index
), и вся обработка форм происходит в indexAction()
на основе нажатия кнопки отправки формы (за один раз отправляется только одна форма).
Для меня наличие множества форм в одном контроллере — это уродливо, потому что логика обработки не проста (слишком много if-elseif
в зависимости от значения кнопки отправки, многие сервисы вводятся в контроллер через фабрику контроллеров).
Как я могу получить зависимости от контроллера, чтобы упростить логику контроллера и уменьшить количество зависимостей? Но мне все еще нужно 5 форм на одной странице, и мне нужно обрабатывать форму, основываясь на нажатой кнопке отправки.
Я думал о создании одного контроллера для одной формы (контроллер получает форму через фабрику), но не представлял, как объединить несколько контроллеров в одно представление. Другой вариант — иметь действия, которые обрабатывают выделенные формы (одно действие => одна форма), но при этом сохраняется множество зависимостей форм в контроллере.
Любая помощь?
Вероятно, лучшее решение — перенаправить все формы публикации на другой URL. Вы можете отправить form1 в / controller / form1process и form2 в / controller / form2process. Тогда вся обработка форм может быть все еще в одном контроллере, но логика для каждой формы разделена на разные функции.
Если есть ошибки, вы можете перенаправить на страницу / controller / allforms и сохранить переменные записи в сеансе или где-то еще.
Других решений пока нет …