類似 Laravel 的效果:直接 return
陣列輸出 JSON 響應。辦法有很多,目前我找到的最優解決方案如下。
/**
* Enable JSON response if app returns Array or Object
*
* @return void
*/
protected function enableJsonResponse()
{
$this->response->on(\yii\web\Response::EVENT_BEFORE_SEND,
function ($event) {
/** @var \yii\web\Response $response */
$response = $event->sender;
if (is_array($response->data) || is_object($response->data)) {
$response->format = \yii\web\Response::FORMAT_JSON;
}
}
);
}
或者在配置內定義也可以:
'response' => [
'on beforeSend' => function ($event) {
// 回撥函式程式碼如上,同理
}
// ...
]