Комментарии 12
небольшой вопросик: а почему модель занимается генерацией урла?
+2
Непонятно зачем использовать nestedset, если в базе хранится полный url. Получается, что для генерации любого url достаточно знать parent?
0
Если меняется заглушка или родитель раздела, то нужно обновлять пути всех его потомков. Здесь как раз вступает nested set. Тем более что этим функционал расширения не ограничивается.
0
Разве нельзя получить всех потомков, независимо от уровня вложенности, по url родителя? Ведь у всех потомков хранится полный путь — это всего один запрос к базе.
0
может кто подскажет как избавиться от
catalog/ в
что-бы было что-то похожее на
Для категорий хочу что-бы получилось:
{category}/{subcategory1}/.../{subcategoryN}
а для продукта:
{category}/{subcategory1}/.../{subcategoryN}/{proiduct}
catalog/ в
$router->get('catalog/{path}', ...)
что-бы было что-то похожее на
$router->get('{path}', ...)
Для категорий хочу что-бы получилось:
{category}/{subcategory1}/.../{subcategoryN}
а для продукта:
{category}/{subcategory1}/.../{subcategoryN}/{proiduct}
0
Этот код по моему сбивает порядок и приводит к тому что у descendants не правильные значения path:
Например, есть следующая структура категорий:
Тут сначала идет название категории и в скобках значение атрибута path.
name (path)
Меняю название parent category на parent cat. Результат:
Потом еще раз меняю название parent cat на parent. Результат:
Из примера понятно, что категория 3-го уровня обновляется раньше категории 2-го уровня.
P.S.: Все работало нормально, пока не добавил категорию 3-го уровня.
$descendants->push($this)->linkNodes()->pop();
Например, есть следующая структура категорий:
parent category (parent-category)
----child (parent-category-child)
--------descendant (parent-category-child-descendant)
Тут сначала идет название категории и в скобках значение атрибута path.
name (path)
Меняю название parent category на parent cat. Результат:
parent cat (parent-cat)
----child (parent-cat-child)
--------descendant (parent-category-child-descendant) // не правильное значение
Потом еще раз меняю название parent cat на parent. Результат:
parent (parent)
----child (parent-child)
--------descendant (parent-cat-child-descendant) // не правильное значение
Из примера понятно, что категория 3-го уровня обновляется раньше категории 2-го уровня.
// Получаем всех потомков в древовидном порядке
$descendants = $this->descendants()->defaultOrder()->get();
// Данный метод заполняет отношения parent и children
$descendants->push($this)->linkNodes()->pop(); // Но сбиваем порядок! Надо убрать.
P.S.: Все работало нормально, пока не добавил категорию 3-го уровня.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Дерево разделов неограниченной вложенности и URL