无法将Yii2对象数据作为Json返回

时间:2015-07-27 09:31:15

标签: php json mongodb yii2

我是Yii2框架和PHP的新手。当我尝试从服务器检索模型数据adb时,我得到一个空的结果。但是,当我使用json时,我得到一个非空的结果。

控制器类代码:

var_dump

模型类代码:

public function actionIndex() {          
    $client = new Client();
    $client->name = "ajith";
    echo json_encode($client);
}

当我使用网址路径class Client extends \yii\mongodb\ActiveRecord { public static function collectionName() { return ['gym', 'client']; } public function attributes() { return ['_id', 'name', 'age', 'sex', 'phoneno', 'email', 'address', 'location']; } public function rules() { return [ [['name', 'age', 'sex', 'phoneno', 'email', 'address', 'location'], 'safe'] ]; } public function attributeLabels() { return [ '_id' => 'ID', 'name' => 'Name', 'age' => 'Age', 'sex' => 'Sex', 'phoneno' => 'Phoneno', 'email' => 'Email', 'address' => 'Address', 'location' => 'Location' ]; } } 时,我会将结果回显为pathToServer/web/client。为什么会这样?我使用MongoDB作为数据库。

1 个答案:

答案 0 :(得分:10)

导入响应类:

use yii\web\Response;

Yii::$app->response->format

之前设置return,告诉Yii您想要的格式是什么?
public function actionIndex() {    
    Yii::$app->response->format = Response::FORMAT_JSON;        
    $data = ["success" => true, "message" => "Hello World"];
    return $data;
}

回应结果:

{
    "success": true,
    "message": "Hello World"
}

您可以在yii2-cookbook

中阅读有关回复格式的信息