Получите ответ в формате JSON – yii2 и php

Я пытаюсь преобразовать и массировать ответ в формате JSON. Я пробовал все ответы, которые были размещены на SO и других веб-сайтах, таких как web1 , добавление header('Content-Type: application/json') web2 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" } 

Задавать

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

в действии контроллера где-то перед return .

Просто добавьте это в контроллер

 public function beforeAction($action) { \Yii::$app->response->format = Response::FORMAT_JSON; return parent::beforeAction($action); }