ru en

Пересчет индексов Nested Set дерева в Symfony

TreeОднажды использовал Nestedset behavior в Doctrine, Symfony и столкнулся с тем, что индексы стали неверными. (Прочитать как работает Nested Set можно здесь). Случилось это, скорее всего, во время миграции - по неосторожности был исполнен низкоуровневый MySQL запрос, из-за которого не отработали ивенты Doctrine, которые пересчитывают индексы. Для того, чтобы исправить это, была написана команда, которая пересчитывает индексы. В принципе, при большом желании, можно оформить это в виде отдельного сервиса, и запустить с помощью следующей миграции. Здесь показан просто рабочий пример, как пересчитать индексы.

 

Аргумент команды - сущность, для которой нужно пересчитать индексы.