Zend Framework - 更改动作输出顺序

时间:2012-05-06 14:09:13

标签: zend-framework zend-view

我的控制器中有两个用于图像相册的操作,第一个创建表单以创建新相册并处理POST,第二个创建现有相册的列表。表单发布到第一个操作,然后将列表操作放在actionstack上。此订单是必要的,否则新创建的相册不会出现在列表中。

因此,在我的HTML输出中,首先是createAction-view的输出,然后是listAction-view的输出。但出于样式的原因,我想改变HTML中两个动作的视图输出顺序。有没有办法让表单后跟表单而不改变执行操作的顺序?

1 个答案:

答案 0 :(得分:0)

如果可能的话,你应该尽量避免使用动作堆栈。只需在处理POST数据后重定向到列表视图,即可完全避免此要求。这也可以防止用户通过刷新页面而意外地再次提交相同的相册。如果您仍希望表单显示在列表下,只需将表单添加到该操作,以便您可以在列表下的视图中输出它。

public function createAction()
{
    $form = new Yourapp_Form_Album();
    if ($this->getRequest()->isPost()) {
        if ($form->isValid($this->getRequest()->getPost()) {
            // save the data and redirect
        }
    }

    $this->view->form = $form;
}

public function listAction()
{
    // load albums and assign to the view

    // if you want the form under the list
    $this->view->form = new Yourapp_Form_Album();
}