我有一个名为Follow的ParseObject,就像在这个JS教程中解释的那样 https://parse.com/docs/js/guide#relations-using-join-tables
虽然我是用PHP做的。目标是一旦Follow对象被保存就能够获得具有嵌套类的对象的php数组表示。 Follow对象的 from 和到属性是指向 _User 对象的指针。
这段代码创建了一个跟随对象,然后尝试使用json_decode将对象转换为php数组,但只有顶层对象被正确解码。
public function post_follow() {
try {
$user = $this->get_user(Input::post('objectId'));
$follow = new ParseObject("Follow");
$follow->set("from", $this->currentUser);
$follow->set("to", $user);
$follow->save();
$this->output = json_decode($follow->_encode(),true);
}
catch(ParseException $ex) {
return $this->error($ex);
}
}
其中$ this->输出是一个php数组,后来通过框架转回json。
此方法具有输出
{
"objectId": "6Gb1WflPfw",
"createdAt": {
"date": "2015-08-16 22:29:48.445000",
"timezone_type": 2,
"timezone": "Z"
},
"updatedAt": {
"date": "2015-08-16 22:29:48.445000",
"timezone_type": 2,
"timezone": "Z"
},
"from": "{\"objectId\":\"88D437QDxp\",\"createdAt\":{\"date\":\"2015-08-13 08:26:29.478000\",\"timezone_type\":2,\"timezone\":\"Z\"},\"updatedAt\":{\"date\":\"2015-08-16 20:09:17.048000\",\"timezone_type\":2,\"timezone\":\"Z\"},\"email\":\"brian@mail.com\",\"emailVerified\":true,\"followersCount\":1,\"followingCount\":2,\"friendsCount\":18,\"phone\":null,\"username\":\"brian\"}",
"to": "{\"objectId\":\"cmX8o9sEDh\",\"createdAt\":{\"date\":\"2015-08-13 08:29:54.735000\",\"timezone_type\":2,\"timezone\":\"Z\"},\"updatedAt\":{\"date\":\"2015-08-13 08:30:17.188000\",\"timezone_type\":2,\"timezone\":\"Z\"},\"email\":\"brian+2@mail.com\",\"emailVerified\":true,\"phone\":null,\"username\":\"brian2\"}"
}
正如您所看到的,from和to字段只是字符串文字,而不是解码为php数组。
答案 0 :(得分:0)
如果有效,请尝试此操作。
public function post_follow() {
try {
$user = $this->get_user(Input::post('objectId'));
$follow = new ParseObject("Follow");
$follow->set("from", $this->currentUser);
$follow->set("to", $user);
$follow->save();
$this->output = json_decode($follow->_encode()); // add true in the second parameter. $this->output = json_decode($follow->_encode(), true);
}
catch(ParseException $ex) {
return $this->error($ex);
}
}