I'm trying to convert and array of response into JSON format. I have tried all the answers that were posted on SO and other websites like web1,web2 adding header('Content-Type: application/json')
and then echo json_encode($data,JSON_PRETTY_PRINT);
But I'm always getting the output in text format. Can some one help me in solving this.
Helpers Class:
public static function renderJSON($data) { header('Content-Type: application/json'); echo json_encode($data,JSON_PRETTY_PRINT); }
My Controller:
if ($model->login()) { $user = User::findByUsernameOrEmail($request->post('username')); $userArray = ArrayHelper::toArray($user); Helpers::renderJSON($userArray);
I tried to printing the userArray
and it looks like this:
Array ( [name] => abc [lastname] => xyz [username] => test_test )
Json output: (html/text)
{ "name": "abc", "lastname": "xyz", "username": "test_test" }
Set
\Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
in the controller's action somewhere before return
.
Since Yii 2.0.11 there is a dedicated asJson()
method to return a response in JSON format. Run:
return $this->asJson($array);
in your controller action.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With