Что случилось, ребята!
Я работаю с 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_user_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 из моей базы данных.