У меня проблемы с генерацией иерархии на основе данных, полученных из API.
В настоящий момент существует взаимосвязь "многие ко многим" между двумя моделями: Tag
s и Node
s.
Теперь мне нужно установить parent_id
на модели Tag
, чтобы узнать, какой Tag
является ее родителем.Это будет рекурсивно, потому что есть несколько уровней глубины.
Дело в том, что этот процесс должен быть разработан из фактических данных о множестве взаимосвязей.Поэтому я играл с коллекциями (Node::all()
/ Tag::all()
), чтобы попытаться создать эту структуру, а затем массово назначить идентификаторы родительского тега в дочерних тегах.
Моя идея заключается в том,чтобы загрузить теги из Node
s, а затем создать новый элемент в коллекции для каждого дочернего тега узла
, так что:
|
|__Node A
| |__Tag 1
| |__Tag 2
| |__Tag 3
|
|__Node B
| |__Tag 1
| |__Tag 3
|
|__Node c
|__Tag 1
|__Tag 2
Может быть преобразовано в это (я знаю, что каждый элемент должен иметь уникальный ключ, я думал назначить один временный):
|
|__Node A
| |__Tag 1
|
|__Node A
| |__Tag 2
|
|__Node A
| |__Tag 3
|
|__Node B
| |__Tag 1
|
|__Node B
| |__Tag 3
|
|__Node c
| |__Tag 1
|
|__Node c
|__Tag 2
Тогда я мог бы сгруппировать (рекурсивно) ключ тега, получив следующий вид:
|__Tag 1
|
|__Tag 2
| |
| |__Node A
| |__Node C
|
|__Tag 3
|
|__Node A
|__Node B
Моя проблема в том, что вы не знаете (пока), как правильно выполнить это преобразование.