我想将表单分为两个步骤 - 每个步骤都在一个单独的页面上。根据第一步中给出的数据,我想在第二步中准备一些预填充数据。
尽管花了很多时间在谷歌搜索我找不到它。
从逻辑的角度来看,我更喜欢一个Zend \ Form和单独的fieldsets(??)而不是创建两个单独的表单。
那么如何在Zend Framework 2中正确地做到这一点?
答案 0 :(得分:2)
最简单的方法(我认为)有两种形式,MyModule\Form\Step1
和MyModule\Form\Step2
。 Step2
表单接受构造函数中的一些输入,这取决于步骤1中的一些数据。
例如,您可以使用服务经理的工厂执行此操作:
'factories' => array(
'MyModule\Form\Step1' => function($sl) {
return new MyModule\Form\Step1;
},
'MyModule\Form\Step2' => function($sl) {
$request = $sl->get('Request');
$data = $request->getPost();
return new MyModule\Form\Step2($data);
}
),
如果您GET
显示第一页的页面,则POST
到第二页,最后POST
到最后一页。在构造第二个表单期间,您可以使用POST数据并根据需要填充/构造数据。