尽管setNoRender,Zend Framework仍在寻求查看脚本

时间:2009-10-21 14:46:53

标签: php zend-framework

我已经制作了一个API控制器,其中包含一些操作来为我的应用程序吐出JSON,我已经关闭了布局并在其init()方法中查看渲染器,因此我没有为此控制器提供查看脚本

我正在尝试通过apiController::treeAction在应用中的其他位置使用我的actionHelper来输出一些内联的JSON。我可以通过/api/tree/id/1直接访问该操作,它显示了JSON数据。但是当我尝试使用

从另一个控制器获取时
$this->view->action('tree', 'api', null, array('id'=>$id))

我得到了一个例外

Message: script 'api/tree.phtml' not found in path ([...]\application\views\scripts\)

是的,该文件不存在,但我不需要它。我做错了什么?

2 个答案:

答案 0 :(得分:1)

您可能需要查看动作助手Context Switch

您可以为此操作指定“json”的操作上下文,然后它将自动处理禁用布局和查看脚本呈现。

答案 1 :(得分:0)

在动作中使用$this->_helper->viewRenderer->setNoRender(true);