Yii2 - как заставить ответный JSON форматер использовать объекты вместо массивов? - PullRequest
4 голосов
/ 25 апреля 2019

Я знаю, что могу установить Yii::$app->response->format = \yii\web\Response::FORMAT_JSON, но как мне установить флаг кодировки JSON JSON_FORCE_OBJECT, чтобы все массивы вместо этого были закодированы как объекты?

1 Ответ

5 голосов
/ 25 апреля 2019

Хорошо, это было не так сложно:

Yii::$app->response->formatters[\yii\web\Response::FORMAT_JSON] = [
    'class' => 'yii\web\JsonResponseFormatter',
    'encodeOptions' => JSON_FORCE_OBJECT,
];

Или даже в виде одной строки:

Yii::$app->response->formatters[\yii\web\Response::FORMAT_JSON]['encodeOptions'] = JSON_FORCE_OBJECT;
...