doufei2007 2016-12-23 14:53
浏览 23
已采纳

Laravel显示阵列json

I want to show data from database: for every id_grup has many lapangan(court)

  $groups_resource = Groups::all();
  $groups = [];
  foreach($groups_resource as $group)
  {
    $g = new Groups();
    $g->id_group = "Group_".$group['id_group'];
    $g->name = $group['nama'];
    $g->expanded = true;
    $g->eventHeight = 25;
    $g->children = array();
    $groups[] = $g;

  $lapangan_resource = Lapangan::with('groups')->orderBy('nama')->get();
  foreach($lapangan_resource as $lapangan)
  {
    $l = new Lapangan();
    $l->id_lapangan = $lapangan['id_lapangan'];
    $l->name = $lapangan['nama_lapangan'];
    $g->children[] = $l;
  }
  }
    return json_encode($groups);

output for above code

[{"id_group":"Group_1","name":"Lapangan Badminton","expanded":true,"eventHeight":25,"children":[]},{"id_group":"Group_2","name":"Lapangan Tenis","expanded":true,"eventHeight":25,"children":[]}]

There is no value for children which might be like this.

[{"id":"group_1","name":"Indoor","expanded":true,"eventHeight":25,"children":[
{"id":"1","name":"Court 1"},
{"id":"2","name":"Court 2"},
{"id":"3","name":"Court 3"},
{"id":"4","name":"Court 4"}]},"id":"group_2","name":"Outdoor","expanded":true,"eventHeight":25,"children":[
{"id":"11","name":"Court 5"},
{"id":"12","name":"Court 6"},
{"id":"13","name":"Court 7"},
{"id":"14","name":"Court 8"}]}]
  • 写回答

1条回答 默认 最新

  • dowaw80220 2016-12-23 15:02
    关注

    You are using wrong array braces. You shouldn't first initialize the children property of a group instead of that you can do it like this:

    foreach($groups_resource as $group)
    {
      $g = new Groups();
      $g->id_group = "Group_".$group['id_group'];
      $g->name = $group['nama'];
      $g->expanded = true;
      $g->eventHeight = 25;
    
      $l_arr = [];
      $lapangan_resource = Lapangan::with('groups')->orderBy('nama')->get();
      foreach($lapangan_resource as $lapangan)
      {
          $l = new Lapangan();
          $l->id_lapangan = $lapangan['id_lapangan'];
          $l->name = $lapangan['nama_lapangan'];
          $l_arr[] = $l;
      }
    
      $g->children = $l_arr;
      $groups[] = $g;
    }
    
    return json_encode($groups);
    

    Hope this helps!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看