Question

Bien que j'ai lu le manuel ici:http://www.doctrine-project.org/documentation/manual/1_2/hu/hierarchical-dataJe n'ai pas pu trouver un moyen de déplacer un nœud d'une feuille pour devenir un nœud racine. Des indices? La question est triviale pour insérer un nouveau nœud ... mais qu'en est-il de la mise à jour d'un nœud?

Était-ce utile?

La solution

Utilisation Doctrine_node_nestset :: makeroot () ainsi:

$item->getNode()->makeRoot($maxRootValue + 1);

Vous devez passer de nouveaux root_id la valeur et l'un des moyens le plus simples pour le faire est de sélectionner MAX(root_id) de la table et incrément sa valeur.

Autres conseils

Comme dit Crozin, utilisez Doctrine_Node_NestedSet::makeRoot(), mais en utilisant l'ID de l'élément au lieu de calculer la valeur maximale du root_id.

Le root_id est l'ID du nœud racine

$item->getNode()->makeRoot($item->id);

N'est pas nécessaire pour calculer la valeur de root_id. Utiliser l'ID de l'article ne crée aucun conflit et c'est la façon dont la doctrine l'a géré en interne.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top