@@ -143,24 +143,15 @@ public function processCreateNodeWithParent(ModelInterface $model): void
143143 */
144144 public function processDelete (ModelInterface $ model ): void
145145 {
146- $ parent = $ model ::findFirst ([
147- self ::$ primaryKey . ' = :parent: ' ,
148- 'bind ' => [
149- 'parent ' => $ model ->readAttribute (self ::$ parentKey )
150- ]
151- ]);
152-
153146 $ query = 'UPDATE ` ' . $ model ->getSource () . '` SET ' .
154147 '` ' . self ::$ rightDbColumn . '` = ` ' . self ::$ rightDbColumn . '` - 1, ' .
155148 '` ' . self ::$ leftDbColumn . '` = ` ' . self ::$ leftDbColumn . '` - 1, ' .
156- '` ' . self ::$ depthDbColumn . '` = ` ' . self ::$ depthDbColumn . '` - 1, ' .
157- '` ' . self ::$ parentDbColumn . '` = :parent ' .
149+ '` ' . self ::$ depthDbColumn . '` = ` ' . self ::$ depthDbColumn . '` - 1 ' .
158150 'WHERE ` ' . self ::$ leftDbColumn . '` > :left AND ` ' . self ::$ rightDbColumn . '` < :right ' ;
159151
160152 $ model ->getWriteConnection ()->query ($ query , [
161153 'right ' => $ model ->readAttribute (self ::$ rightKey ),
162154 'left ' => $ model ->readAttribute (self ::$ leftKey ),
163- 'parent ' => $ parent ? $ parent ->readAttribute (self ::$ primaryKey ) : 0
164155 ]);
165156
166157 $ query = 'UPDATE ` ' . $ model ->getSource () . '` SET ' .
@@ -176,6 +167,14 @@ public function processDelete(ModelInterface $model): void
176167 $ model ->getWriteConnection ()->query ($ query , [
177168 'right ' => $ model ->readAttribute (self ::$ rightKey )
178169 ]);
170+
171+ // update parent for immediate sub-nodes of current category
172+ $ query = 'UPDATE ` ' . $ model ->getSource () . '` SET ' .
173+ ' ` ' . self ::$ parentDbColumn . '` = 0 ' .
174+ 'WHERE ` ' . self ::$ parentDbColumn . '` = :parent ' ;
175+ $ model ->getWriteConnection ()->query ($ query , [
176+ 'parent ' => $ model ->readAttribute (self ::$ primaryKey )
177+ ]);
179178 }
180179
181180 public function processUpdate (ModelInterface $ model ): void
0 commit comments