Как правильно выводить дочерние категории?

ПОдскажите. Есть таблица  categories: id,title,slug,parent; В parent лежит id(int) родительской категории. Так вот. Конечно можно взять where('id', '=', 'parent'); Вернутся дочерние категории. Но что если у дочерней категории есть еще дочерние? Можно сделать несколько массивов, но думаю так не нужно делать и есть какое-то более универсальное решение) помогите пожалуйста.
  • Вопрос задан
  • 292 просмотра
Пригласить эксперта
Ответы на вопрос 1
Alex_Wells
@Alex_Wells
PHP/TS/Kotlin developer
Код стыбзил из stackoverflow:

public static function ancestors($id)
{
    $ancestors = Model::where('id', '=', $id)->get();

    while ($ancestors->last()->parent_id !== null)
    {
      $parent = Model::where('id', '=', $ancestors->last()->parent_id)->get();
      $ancestors = $ancestors->merge($parent);
    }

    return $ancestors;
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы