Laravel显示数据库中的数据并转换为json

时间:2016-12-15 17:59:47

标签: php json laravel

我正在尝试从laravel上的数据库显示数据,但是在视图刀片中不显示任何内容。每个小组都有很多lapangan(英国:法院)数据

$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都没有子输出   我想要什么

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

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

如果要以JSON格式返回响应,则可以使用json()方法:

return response()->json($datagrup);

OR

要将模型转换为JSON,您应该使用toJson方法。与toArray类似,toJson方法是递归的,因此所有属性和关系都将转换为JSON:

$user = App\User::find(1);

return $user->toJson();

答案 1 :(得分:0)

尽管如此,您的代码似乎已经解决了......我仍然觉得以下代码对您有用:)

我不确定$datagroup[] = $dataresource到底是什么意思?是否要添加datagroup to dataresourcedataresource to datagroup ...您的代码会显示某些内容,所需的输出是其他内容。

$datagroup = array_map(function($groups) use ($scheduler_resources) {
              return [
                'id' => $group['id_group'],
                'name' => $group['nama'],
                'expanded' => true,
                'children' => $scheduler_resources->map(function($resource) {
                                return [
                                  'id' => $resource->id_lapangan,
                                  'name' => $resource->nama_lapangan,
                                ];
                              }),
                'eventHeight' => 25
              ];
             }, $scheduler_groups);

echo json_encode($datagroup);

// or
// return response()->json($datagroup);

注意: - 请确保每个$scheduler_resources

$datagroup不同