Zend Framework 2中的多页表单

时间:2013-07-16 13:43:33

标签: zend-framework2 zend-form2

我想将表单分为两个步骤 - 每个步骤都在一个单独的页面上。根据第一步中给出的数据,我想在第二步中准备一些预填充数据。

尽管花了很多时间在谷歌搜索我找不到它。

从逻辑的角度来看,我更喜欢一个Zend \ Form和单独的fieldsets(??)而不是创建两个单独的表单。

那么如何在Zend Framework 2中正确地做到这一点?

1 个答案:

答案 0 :(得分:2)

最简单的方法(我认为)有两种形式,MyModule\Form\Step1MyModule\Form\Step2Step2表单接受构造函数中的一些输入,这取决于步骤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数据并根据需要填充/构造数据。