2016-04-04 22 views
0

ZF2'de 5 form işleyen bir denetleyicim var. 5 form tek bir sayfada görüntülenir (index) ve tüm form işleme, bir formun gönder düğmesine basıldığında indexAction() içinde gerçekleşir (her seferinde yalnızca bir form gönderilir).ZF2 tek denetleyicideki birçok form

Bana göre, tek bir denetleyicide birçok form olması çirkin bir işlemdir çünkü işlem mantığı basit değildir (çok fazla if-elseif'un gönderme düğmesinin değeri temel alınarak denetleyiciye fabrikada birçok hizmet enjekte edilir) .

Denetleyici mantığını basitleştirmek ve bağımlılık sayısını azaltmak için bağımlılıkları denetleyiciden nasıl alabilirim? Ama yine de tek bir sayfada 5 forma ihtiyacım var ve gönderilen gönder düğmesine dayalı bir formu işlemek gerekiyor.

Tek bir form için tek bir denetleyici oluşturmayı düşündüm (denetleyici formu fabrikadan alır), ancak birden çok denetleyicinin tek bir görünüme nasıl sığdırılacağını bilmez. Diğer bir seçenek, özel formları işleyen eylemlere sahip olmaktır (bir eylem => bir form), ancak denetleyicide birçok form bağımlılığını hala korur.

Herhangi bir yardım?

cevap

0

Muhtemelen en iyi çözüm, tüm gönderme formlarını farklı bir URL'ye yönlendirmektir. Form1'i/controller/form1process ve form2 to/controller/form2process için gönderebilirsiniz. Daha sonra tüm form işleme yine de bir denetleyicide olabilir, ancak form başına mantık farklı işlevlere ayrılır.

Hatalar varsa/controller/allforms sayfasına yönlendirebilir ve gönderi varyasyonlarını bir oturuma veya başka bir şeye kaydedebilirsiniz.