我有一个扩展Controller_Template的控制器(Controller_Product)。 在Controller_Product中我有一些动作(创建,编辑等),我需要渲染模板,但有些动作(例如save,delete)必须返回一个json对象,所以我不需要模板来被渲染。 我该如何解决这个问题?
我可以在保存或删除操作中将$ this-> auto_render设置为FALSE,但在这种情况下也会创建模板,即使是没有渲染。我认为在我不需要它时加载模板并不是很优雅。
有什么建议吗?
答案 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();
}