2011-08-31 20 views
0

我目前使用的是Kohana的默認模板系統。目前,我擴展了我的一個控制器Controller_Template_Default。由此生成的輸出對於此控制器中的大部分操作都是完美的,但是某些操作必須輸出JSON,爲此我需要一個空白頁面,僅輸出JSON數據(因此不需要模板)。以每個動作爲基礎呈現模板 - Kohana3.2

我試圖返回沒有模板的JSON數據與$this->response->body($data);,但它沒有奏效。

您的建議是什麼?我應該以每個操作爲基礎而不是按控制器來呈現模板?我該如何解決這個問題?

回答

0

您應該使用json_encode和JSON響應提供一個Content-Type頭:

$this->response->headers('Content-Type', 'application/json'); 
$this->response->body(json_encode($data)); 

此外,我渲染模板我after()法有他自己的內容模板每一個動作一個全球性的模板中。但爲了能夠輕鬆地在JSON和HTML之間切換,我發現使用Kostache模塊更好地將邏輯從實際模板中分離出來更好:https://github.com/zombor/KOstache

閱讀本文,瞭解如何使用Kohana提供不同的格式(JSON,HTML等等):http://techportal.inviqa.com/2010/02/22/scaling-web-applications-with-hmvc/

1

在之前的例程或所有「json」操作中,輸入以下句子 this-> auto_render = false; 隨着auto_render設置爲false,Kohana中不會嘗試應用模板

0

使用

echo json_encode($data); 
die(); 

該腳本將停止die();後執行,你將有隻有json_encode($data);打印