Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony][Symfony2] Kopiowanie nodów wraz z potomkami
Forum PHP.pl > Forum > PHP > Frameworki
korniks
Witam,

w swoim projekcie wykorzystuje Tree behavior extension dla Doctrine 2. Chciałem móc kopiować i wycinać poszczególne nody do nowego miejsce w drzewie. Zrobienie "wycinania" noda do innego miejsca było dość łatwe, wystarczyło bowiem zmienić wartość atrybutu parent w obiekcie. Niestety z kopiowaniem mam już problemy.

Próbowałem z klonować obiekt, a następnie go dodać do bazy:

  1. $node_clone = clone $node;
  2. $node_clone->setParent($newParent);
  3.  
  4. $em->persist($node_clone);
  5. $em->flush();


Niestety, tak jak przypuszczałem skopiował samego noda bez dzieci i relacji. Z tego co wyczytałem brak relacji można załatwić po przez napisanie funkcji magicznej __clone(). Jednak co z dziećmi?

Istnieje jakiś szybki i wydajny sposób na przekopiowanie noda wraz z dziećmi i wszystkimi relacjami bez konieczności wyciągania "ręcznie" dzięci z każdego zagnierzdźenia?

Pozdrawiam.
murwazy
uzyj api rozszerzenia doktryny, na pewno sa tam metody w rodzaju
->persistAsFirstChild()
->persistAsFirstChildOf()
korniks
Cytat(murwazy)
uzyj api rozszerzenia doktryny, na pewno sa tam metody w rodzaju


Tak są, niestety nie kopiują mi noda i dzieci a jedynie przenoszą je na nowe miejsce ;/. Przejżałem też całe NestedTreeRepository i nie znalazłem tego czego szukam.

Potrzebuje czegoś co działa podobnie do funkcji copy($deep) która była w doctrine 1.
ano
A czemu nie napiszesz metody __clone() dla tego obiektu?
Masz tutaj poradnik jak to zrobić:
http://docs.doctrine-project.org/projects/...p-or-clone.html

A jak chcesz konkretny kod to musisz dać kod swojej klasy.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.