代码之家  ›  专栏  ›  技术社区  ›  markus

如何在Zend Framework中获取所有响应段?

  •  1
  • markus  · 技术社区  · 16 年前

    $userlogAction = clone($request);
    $userlogAction->setActionName('userlog')->setControllerName('index');
    $actionStack->pushStack($userlogAction);
    

    现在,当我在视图中测试当前操作时:

    $request = Zend_Controller_Front::getInstance()->getRequest();
    $action = $request->getActionName();
    

    我得到一个(随机?)动作的名称,但我想测试另一个动作。

    1 回复  |  直到 16 年前
        1
  •  2
  •   Ferdinand Beyer    16 年前

    请求从返回 Zend_Controller_Front::getRequest() 当然不是随机的,而是调度器当前正在处理的请求,即导致调用动作控制器的动作方法,从而执行视图脚本的请求。使用ActionStack插件,您只需添加更多请求,由dispatcher逐个处理。

    如果要获取操作堆栈上的所有请求,必须直接查询操作堆栈插件:

    <?php
    $front = Zend_Controller_Front::getInstance();
    $plugin = $front->getPlugin('Zend_Controller_Plugin_ActionStack');
    
    if ($plugin) {
        $stack = $plugin->getStack();
    
        foreach ($stack as $request) {
            $action = $request->getActionName();
            // Do whatever you want with $action
        }
    } else {
        // Not using the action stack
        $action = $front->getRequest()->getActionName();
    }
    ?>
    
    推荐文章