Я пытаюсь преобразовать и массировать ответ в формате 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); }