2015-05-23 20 views
5

Unter Verwendung von symfony2 und doctrine2 mit Doktainbaumerweiterung habe ich kürzlich eine Entität aktualisiert, um es zu einem Doktrin-verschachtelten Mengenbaum zu machen.Wiederherstellen von Wurzelknoten

Eine Doktrin-Schema-Update-Force hat die rechten Spalten mit Nulldaten hinzugefügt.

Dann lief ich den folgenden Code:

 $repo = $this->getDoctrine()->getRepository('AppBundle:FoodAnalytics\Recipe'); 

     $repo->verify(); 
// can return TRUE if tree is valid, or array of errors found on tree 
     $repo->recover(); 
     $this->flush(); // important: flush recovered nodes 
// if tree has errors it will try to fix all tree 

Es erfolgreich links nach rechts und Pegelwerte, aber nicht Wurzel gewonnen. Ich kann keine Root-Werte manuell setzen (verboten durch Dokteilisten).

Wie kann ich diese Wurzelwerte aktualisieren, damit die Baumstruktur ordnungsgemäß funktioniert?

Danke!

Antwort

-1

Nun, ich habe keine objektorientierte Lösung gefunden, also ging ich für eine rohe SQL-Abfrage. Ich tue dies, bevor eine Entität ein Elternelement erhält, daher sollte der Wurzelwert jeder Entität ihrer eigenen ID entsprechen.

phpMyAdmin, fügen Sie die folgende SQL-Abfrage und ausführen:

update recipe 
set recipe.root = recipe.id 
Verwandte Themen