umbrellio/laravel-ltree

Ошибка "There is no node with id" когда елемент есть в коллекции

Closed this issue · 1 comments

Получаю такую ошибку, если не использовать сортировку

return new CommentResourceCollection($comments, null, false);

Хотя довольно легко можно исправить это поведение, если изначально создать все ноды, а затем только их использовать

foreach ($items as $item) {
    $node = new LTreeNode($item);

    $id = $item->{$this->idField};

    $this->nodes[$id] = $node;
}

foreach ($items as $item) {
    [$id, $parentId] = $this->getNodeIds($item);

    $node = $this->nodes[$id];

    $parentNode = $this->getNode($parentId);
    $parentNode->addChild($node);
}

Причем из-за того что все поля private, это создает очень большие проблемы при попытке что-то допилить самостоятельно. Почему не protected?

@ZavilenskyIlya

Исправлено и доступно в версии 7.1.0.

Насчет этого:

Причем из-за того что все поля private, это создает очень большие проблемы при попытке что-то допилить самостоятельно. Почему не protected?

Планировалось, что эти компоненты не будут и не должны модифицироваться из вне.
Если есть какие-то ошибки, как эта, мы можем внести исправления сами, либо через ваши Pull-реквесты.

Спасибо вам за ваш фидбек.