2011-03-28 60 views
1

我在bootstrap中自动调用动作助手,所以我不需要在动作本身中调用它,它会自动调用。渲染时不会采取行动

在动作助手中,我想要执行渲染,然后停止执行,以使其不像通常那样进入被调用动作。我应该用什么来停止执行并阻止它执行?

  • 如果我退出,它不带我去的动作,但它不会做任何渲染。
  • 如果我回来,它还是到行动(离开动作助手,并继续和下一步的动作本身,因此执行它)

-

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

可能:回声$行动 - >渲染( '第二')?或者你想去其他行动?比你的控制器中$ this - > _ forward('second'); – opHASnoNAME 2011-03-29 05:02:58

回答

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