ASN*_*ASN 13 php json yii2 yii2-advanced-app
我正在尝试将响应数组转换为JSON格式.我已经尝试了在SO和其他网站上发布的所有答案,如web1,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);
}
Run Code Online (Sandbox Code Playgroud)
我的控制器:
if ($model->login()) {
$user = User::findByUsernameOrEmail($request->post('username'));
$userArray = ArrayHelper::toArray($user);
Helpers::renderJSON($userArray);
Run Code Online (Sandbox Code Playgroud)
我试着打印userArray它看起来像这样:
Array
(
[name] => abc
[lastname] => xyz
[username] => test_test
)
Run Code Online (Sandbox Code Playgroud)
Json输出:(html/text)
{
"name": "abc",
"lastname": "xyz",
"username": "test_test"
}
Run Code Online (Sandbox Code Playgroud)
Biz*_*ley 38
组
\Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
Run Code Online (Sandbox Code Playgroud)
在控制器的行动之前的某个地方return.
And*_*ger 17
从Yii 2.0.11开始,有一种专用asJson()方法以JSON格式返回响应.跑:
return $this->asJson($array);
Run Code Online (Sandbox Code Playgroud)
在你的控制器动作中.
只需在控制器中添加它
public function beforeAction($action)
{
\Yii::$app->response->format = Response::FORMAT_JSON;
return parent::beforeAction($action);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32592 次 |
| 最近记录: |