一尘不染

在Yii2中以JSON格式获取响应

json

我正在尝试将响应数组和响应数组转换为JSON格式。我已经试过被贴在SO和其他网站一样,所有的答案WEB1web2的增加header('Content-Type: application/json'),然后echo json_encode($data,JSON_PRETTY_PRINT); 但我一直都想与文本格式的输出。有人可以帮我解决这个问题吗?

助手类:

public static function renderJSON($data) {
    header('Content-Type: application/json');
    echo json_encode($data,JSON_PRETTY_PRINT);
}

我的控制器:

if ($model->login()) {
    $user =  User::findByUsernameOrEmail($request->post('username'));
    $userArray = ArrayHelper::toArray($user);
    Helpers::renderJSON($userArray);

我尝试打印userArray,它看起来像这样:

Array
(
    [name] => abc
    [lastname] => xyz
    [username] => test_test
)

Json输出:(html / text)

{
    "name": "abc",
    "lastname": "xyz",
    "username": "test_test"
}

阅读 360

收藏
2020-07-27

共1个答案

一尘不染

\Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;

在控制器的动作之前return

2020-07-27