@Radiocity , да, Yii не особо human-адаптивный для понимания... Сейчас пишу свой php-framework, при том не копируя/подсматривая логики, он оказался очень близким к Laravel-у... Поэтому могу сказать, что laravel - это наиболее простой для изучения и понимания архитектуры проекта с нуля.
а-а.... ну это тогда все объясняет)
1. смотрим на след. элемент за перенесенным элемент: 1-й в списке? (3-й параметр "NULL"?)
Да - ставим текущий(3-й параметр) в NULL,
Нет - ставим текущий(3-й параметр) в ID предыдущего
2. следующий за текущим(3-й) меняем на наш (id-текущего, который перенесли).
ну вы же знаете ID предыдущей (под которую ставите текущую).... и по этому ID в столбце display_after_id ищите запись.
было: B(после A)->D(после B), вы делаете: B(после A)->C(после B)->D(после C)
"В таком случае при создании новой категории её display_after_id = 0" - это странно. должен быть id предыдущей созданой дирректории или NULL, если она единственная на этом уровне.
После перетаскивания меняются 2 записи (параметр: display_after_id): текущая и следующая.
@andreyqin, @KorsaR-ZN, Коллеги, методы POST/PUT - универсальнее (объем информации, типы данных, манипуляции с перечнем полей) при изменении любой записи и поэтому лучше и правильнее, чем GET в любом случае. (например, можно одним запросом менять массив объектов!)