応答の配列をJSON形式に変換しようとしています。 SOおよび他のWebサイト web1 、 web2header('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);
}