zend-framework - Zend 框架 : How to render a different action?

标签 zend-framework zend-view zend-controller

我有两个基本相同的操作,但需要不同的 URL。通常我会使用 _forward() 来呈现其他操作:

class MyController extends Zend_Controller_Action
{
    public function actionOneAction()
    {
        $this->_forward('action-two');
    }

    public function actionTwoAction()
    {
        $this->view->foobar = 'foobar';
    }
}

但是,我在 preDispatch() 中发生了一些代码,我只想执行一次:

class MyController extends Zend_Controller_Action
{
    public function preDispatch()
    {
        //execute this only once before actionOne or actionTwo, but not both
    }

    public function actionOneAction()
    {
        $this->_forward('action-two'); //this won't work because preDispatch() will get called a second time
    }

    public function actionTwoAction()
    {
        $this->view->foobar = 'foobar';
    }
}

所以我想也许我可以直接调用该函数,如下所示:

class MyController extends Zend_Controller_Action
{
    public function preDispatch()
    {
        //execute this only once before actionOne or actionTwo, but not both
    }

    public function actionOneAction()
    {
        $this->actionTwoAction(); //execute the same code as actionTwoAction()
    }

    public function actionTwoAction()
    {
        $this->view->foobar = 'foobar';
    }
}

但是现在 Zend Framework 提示无法找到 action-one.phtml View 脚本。我不想渲染 actionOne 的 View 脚本。我想渲染actionTwo 的 View 脚本。我需要做什么?

最佳答案

使用render()似乎可以解决问题:

public function actionOneAction()
{
    $this->actionTwoAction(); //execute the same code as actionTwoAction()
    $this->render('action-two'); //renders the same view as actionTwoAction()
}

关于zend-framework - Zend 框架 : How to render a different action?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4503724/

相关文章:

javascript - 如何使用 javascript 隐藏 Zend Element 标签

php - 在 ZF2 中直接将 PhpRenderer 与 subview 一起使用

php - Zend 框架单元测试 : How to render response on redirect()

zend-framework - Zend 框架嵌套复选框

php - Zend Forms 模块包含路径

php - Zend 数据库适配器 mysqli 或 PDO_MYSQL

php - 我在 Zend Framework 中的什么地方保存部分( View ),以便我的应用程序中的所有 View 都可以访问?

php - Zend MVC::如何将javascript文件+ javascript代码插入到部分头部或正文区域?

zend-framework - 如何在 Bootstrap 中访问 URL 参数

php - Zend Framework MVC 重定向到不同的 Controller 和操作