Laravel show array json



我想显示数据库的数据:对于每个ID_Grup都有许多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);

以上代码的输出

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

可能没有这样的孩子的价值。

[{"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"}]}]

您正在使用错误的数组括号。您不应首先初始化组的children属性,而不是这样做:

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);

希望这会有所帮助!

最新更新