我有以下控制器,除了其他方法之外,它还有这个:
class EquipasController extends OccControllerAction {
public function listaAction()
{
$this->_helper->viewRenderer->setNoRender(true);
$this->_helper->layout->disableLayout();
}
}
当我这样做的时候,我在期待: http://www.example.com/equipas/lista/
控制器将执行,我将在视口中看不到任何布局渲染。
但事实并非如此。我得到了我的主页。
在ZF上我们通常会说:如果某个操作不存在,主页应该出现?
注意: 如果,而不是: http://www.example.com/equipas/lista/
我知道, http://www.example.com/equipas/adasdas21232131/ 那不存在。我得到相同的主页渲染。
造成这种行为的原因是什么?
一个Zend新手, MEM
答案 0 :(得分:22)
在控制器中添加:
public function preDispatch(){
$this->_helper->layout()->disableLayout();
$this->_helper->viewRenderer->setNoRender(true);
}
答案 1 :(得分:5)
这可能无法直接回答您的问题(您似乎已经解决了),但要禁用布局并为AJAX请求提供不同的视图,请考虑使用AjaxContext操作助手。
答案 2 :(得分:0)
public function indexAction()
{
echo "json"
return $this->getResponse();
}