怎么了伙计们!
我和laravel在一个客户机项目中合作,我想建立一个树状结构,在系统中注册用户,我从d3.js库中找到一个脚本来执行这个任务,为此它使用JSON来获取数据。
其工作结构如下:
{
"name": "Top Level",
"parent": null,
"children": [{
"name": "Level 2: A",
"parent": "Top Level",
"children": [{
"name": "Son of A",
"parent": "Level 2: A"
},
{
"name": "Daughter of A",
"parent": "Level 2: A"
}
]
},
{
"name": "Level 2: B",
"parent": "Top Level"
}
]
}
我试着用同样的格式准备json,但我不明白它将自动生成的逻辑。我的数据库中有一个用户,如示例中所示 "parent": null
就我而言: "id_user_parent": null
,并且所有其他用户都与其他用户ID相关。
我的问题是,如何让这个用户的那个“id\u user\u parent”:null先和其他他喜欢的人各自的孩子?
我呼叫我的控制器:
$users = User::select('name_first', 'name_second', 'id_user_parent')->get()
我数据库里的答案是:
[
{
"name_first": "Tiago",
"name_second": "Revers Paza",
"id_user_parent": null
},
{
"name_first": "Yuri",
"name_second": "Luiz Hugo da Cunha",
"id_user_parent": 1
},
{
"name_first": "Severino",
"name_second": "Ben\u00edcio das Neves",
"id_user_parent": 1
}
]
我生成了一个脚本并处理了数据库中的数据,得到了以下结果:
$users = User::select('name_first', 'name_second', 'id_user_parent')->get();
foreach ($users as $user) {
if ($user['id_user_parent'] == null) {
$main['name'] = $user['name_first'] . ' ' . $user['name_second'];
$main['parent'] = $user['id_user_parent'];
$data = $main;
}
}
foreach($users as $key => $user) {
if ($user['id_user_parent'] != null) {
$data['children'][$key]['name'] = $user['name_first'] . ' ' . $user['name_second'];
$data['children'][$key]['parent'] = $user['id_user_parent'];
}
}
dd($data);
我的json结果是:
array:3 [▼
"name" => "Tiago Revers Paza"
"parent" => null
"children" => array:2 [▼
1 => array:2 [▼
"name" => "Yuri Luiz Hugo da Cunha"
"parent" => 1
]
2 => array:2 [▼
"name" => "Severino Benício das Neves"
"parent" => 1
]
]
]
也就是说,这是“预期的”,但它只适用于一个单一的水平和想法是关系到根据 id_user_parent
有没有人对如何从我的数据库动态挂载这个json有什么想法。
暂无答案!
目前还没有任何答案,快来回答吧!