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 PADS Logic 原理图
  • ¥15 PADS Logic 图标
  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥15 DruidDataSource一直closing
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
  • ¥50 STM32单片机传感器读取错误
  • ¥50 power BI 从Mysql服务器导入数据,但连接进去后显示表无数据