Zend Framework - 改变动作输出的顺序

Posted

技术标签:

【中文标题】Zend Framework - 改变动作输出的顺序【英文标题】:Zend Framework - Change order of action output 【发布时间】:2012-05-06 14:09:13 【问题描述】:

我的控制器中有两个图片相册操作,第一个创建一个表单来创建一个新相册并处理 POST,第二个生成现有相册的列表。表单发布到第一个操作,然后将列表操作放在操作堆栈上。此顺序是必要的,否则新创建的专辑不会出现在列表中。

所以在我的 html 输出中,首先是 createAction-view 的输出,然后是 listAction-view 的输出。但出于样式原因,我想更改 HTML 中两个操作的视图输出顺序。有没有一种方法可以让列表后跟表单而不更改执行操作的顺序?

【问题讨论】:

【参考方案1】:

如果可能,您应该尽量避免使用操作堆栈。您可以通过在处理 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();

【讨论】:

以上是关于Zend Framework - 改变动作输出的顺序的主要内容,如果未能解决你的问题,请参考以下文章

Zend Framework - 当 URL 在控制器/动作段上有 $$$ 或 ~ 时出错

PHP Zend Framework2入门

Zend_ACL 具有模块化结构?

PHP Zend Framework:设置Zend Navigation

Zend Framework windows8.1下配置zend framework1.12

PHP Zend Framework:引导Zend_Log(登录firebug)