在CONTROLLER里邊加上
- 如果指示指定一個函數那么可以使用: \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
- 如果想整個應用都返回JSON格式,那么可以在component中設置:
'response' => [
'format' => 'json'
],
3. 如果像第二種方法那樣讓全局的返回值都是json格式,那么有些網頁會顯示為亂碼,所以最佳的解決方法是在每一個類中加一個beforeAction,在其中執行第一種方法.
public function beforeAction($action) { return Yii::$app->response->format = \yii\web\Response::FORMAT_JSON; }
4.第三種方法是自己寫了一個前置的過濾器,實際上yii是自帶了相關的過濾器的,可以直接使用,如下:
use yii\web\Response;
use yii\filters\ContentNegotiator;
public function behaviors()
{
return [
[
'class' => ContentNegotiator::className(),
'formats' => [
'application/json' => Response::FORMAT_JSON,
],
],
];
}