У меня есть сущность, называемая сообщениями в моем приложении. Сообщения могут быть дочерними по отношению к другим сообщениям, поэтому родительское сообщение имеет hasMany('posts'), а дочернее имеет hasOne('post'), включение бесконечно.
Вот схема:
Как я могу рекурсивно получить всех дочерних элементов и дочерних элементов и т. д. первого сообщения, для которого значение «post_id» равно нулю?
Пожалуйста, не комментируйте здесь производительность, я знаю, что такая схема плоха, я хочу знать только, как правильно написать рекурсивную функцию для извлечения бесконечных вложенных сообщений.
Например, допустим, у меня есть первое сообщение 1.
Сообщение 2 и 3 являются дочерними элементами сообщения 1.
Сообщение 4 и 5 являются дочерними элементами сообщения 2.
Сообщение 6 и 7 являются дочерними элементами сообщения 3.
Посты 8, 9, 10 являются дочерними элементами поста 5.
Посты 11, 12, 13 являются дочерними элементами поста 7.
Пост 14 являются дочерними элементами поста 10.
Я хочу написать рекурсивная функция, которая доставит мне посты 2-14.