duanlinpi0265 2014-01-13 10:26
浏览 38

json编码doctrine对象中的对象数组

I have following doctrine model..

House doctrine entity

// Below are not my real object. These are example similar to my originals

// Doctrine entity
class House implements JsonSerializable {
  // Doctrine properties
  protected $id;  // doctrine id field
  protected $rooms; // rooms : one-to-many relation to Room doctrine entity.

  // serializer
  public function jsonSerialize() {
    return [
      'id' => $this->GetId(),
      'rooms' => $this->GetRooms(),
    ];
  }

  // Getters & setters.
  public GetId() { return $this->id; }
  public SetId($id) { $this->id = $id }

  public GetRooms() { return $this->rooms; }
  public SetRooms($rooms) { $this->rooms = $rooms; }
}

Following is Room entity

// Doctrine entity
class Room implements JsonSerializable {
  protected $id; // doctrine id field

  // serializer
  public function jsonSerialize() {
    return [
      'id' => $this->GetId(),
    ];
  }

  // Getters & setters.
  public GetId() { return $this->id; }
  public SetId($id) { $this->id = $id }
}

Problem ..

When I fetch one House entity using doctrine query, it fetches along with rooms objects. But, if I encoded them with json_encode() the values for rooms seen emtpy.

*Query.. *

$qb->select('h', 'r')
  ->from('House', 'h')
  ->where('id = ?1')
  ->leftJoin('h.rooms', 'r')
  ->setParameter('1', $houseId);

If I loop through the result set and print the individual item (including Room object within House) all properties print well. I tried with Zend\Json\Json::encode() as well. Still the rooms property is empty.

How can I 'json encode' to get the object array within the object to be serialized? Whats the trick?

  • 写回答

1条回答 默认 最新

  • douzhu6149 2014-03-18 15:46
    关注

    I found the solution: 'rooms' => $this->GetRooms()->toArray() That will work, because we need an Array, not an Array collection

    评论

报告相同问题?

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题