![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 22.03.2012 Ostrzeżenie: (0%) ![]() ![]() |
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:
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. Ten post edytował korniks 26.05.2012, 12:22:36 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 5 Dołączył: 13.04.2007 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
uzyj api rozszerzenia doktryny, na pewno sa tam metody w rodzaju
->persistAsFirstChild() ->persistAsFirstChildOf() |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 22.03.2012 Ostrzeżenie: (0%) ![]() ![]() |
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. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 435 Pomógł: 40 Dołączył: 16.02.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
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. -------------------- Linkedin | ...
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.06.2025 - 18:35 |