2015-05-23 25 views
5

Utilizzando symfony2 e doctrine2 con estensione tree doctrine, ho aggiornato di recente un'entità per renderla un albero di set nidificato di dottrine.Come ripristinare i root node

Una forza di aggiornamento dello schema di dottrina ha aggiunto le colonne giuste con dati null.

Poi ho eseguito il seguente codice:

 $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 

Si riprese con successo i valori di destra e di sinistra, ma non a livello di root. Non riesco a impostare manualmente i valori di root (vietato dal listener di doctrine).

Come aggiornare questi valori di root in modo che l'albero funzioni correttamente?

Grazie!

risposta

-1

Bene, non ho trovato una soluzione orientata agli oggetti quindi sono andato per una query SQL raw. lo sto facendo prima che qualsiasi entità abbia un genitore, quindi il valore di root di ogni entità dovrebbe essere uguale al proprio id.

in phpMyAdmin, incollare la seguente query SQL ed eseguire:

update recipe 
set recipe.root = recipe.id 
Problemi correlati