渲染而不采取行动

时间:2011-03-28 23:35:29

标签: php zend-framework

我在引导程序中自动调用一个动作助手,所以我不需要在动作本身中调用它,它会被自动调用。

在动作助手中,我想做一个渲染,然后停止执行,这样就不会像通常那样进入被调用的动作。我应该使用什么来停止执行并阻止它执行操作?

  • 如果我退出,它不会将我带到操作,但它也不会执行渲染。
  • 如果我确实返回,它仍然会进入操作(离开动作助手并继续,下一步是动作本身,所以它执行它)

-

$action = //
if (/*something*/){
    $action->render('second');
    return;   //it goes to the action after that
    exit;     //the render doesn't work
}

1 个答案:

答案 0 :(得分:1)

我会从动作帮助器返回一个布尔值,然后从那里渲染。所以在你的行动助手中:

if(/* something */) {
  $this->_helper->viewRenderer('second.phtml');
  return false;
} else
  return true;

在你的行动中:

if($this->_helper->yourHelper()) {
 //Do whatever your action should do otherwise
} //No need for an else, the render will call second.phtml automatically