Skip to content

Commit aebef2d

Browse files
author
Flaviu Chelaru
authored
Merge pull request #7 from P4BGroup/issue/3-delete-root-node
refs #3 issue on delete root node
2 parents dd47e4f + a4de0b7 commit aebef2d

File tree

1 file changed

+9
-10
lines changed

1 file changed

+9
-10
lines changed

src/Behavior.php

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)