Kohana模板控制器,没有自动渲染

时间:2012-01-18 09:26:04

标签: templates controller kohana

我有一个扩展Controller_Template的控制器(Controller_Product)。 在Controller_Product中我有一些动作(创建,编辑等),我需要渲染模板,但有些动作(例如save,delete)必须返回一个json对象,所以我不需要模板来被渲染。 我该如何解决这个问题?

我可以在保存删除操作中将$ this-> auto_render设置为FALSE,但在这种情况下也会创建模板,即使是没有渲染。我认为在我不需要它时加载模板并不是很优雅。

有什么建议吗?

1 个答案:

答案 0 :(得分:5)

沿着这些方向的东西也许:

public function before()
{
        if (in_array($this->request->action(), array('save', 'delete')))
        {
                $this->auto_render = FALSE;
        }

        parent::before();
}

[编辑]

更好的方法可能是检查ajax请求:

public function before()
{
        if ($this->request->is_ajax())
        {
                $this->auto_render = FALSE;
        }

        parent::before();
}