starach
23.06.2010, 12:09:39
Witam,
Zrobiłem sobie model użytkownika który składa się z dwóch dodatkowych klas. Niestety podczas serializacji nie są one dodawane do łańcucha wynikowego. Czy jest jakaś opcja która umożliwia serializację również obiektów dołączanych czy będę musiał napisać to ręcznie?
XianN
26.06.2010, 02:02:57
Ostatnio tez sie na to nadzialem...
Wychodzi na to, ze to jest blad w doctrine. Poniewaz serializacja zapisuje tylko to co fizycznie jest w obiekcie, to nie zlapie tego, co doctrine trzyma sobie gdzies-tam przez __get i __set. Mysle, ze mozna to obejsc dopisujac zapisywanie wartosci tych 2 pol gdzies przez __sleep, a potem przywracanie ich przez __wakeup.
Nie testowane - u nas rozwiazalismy to inaczej (zmiana serializacji na trzymanie w bazie ze stanem 'nieaktywny').
destroyerr
26.06.2010, 10:06:34
To nie jest błąd i nie trzeba go obchodzić. Logiczne jest, że obiekt nie załaduje wszystkich swoich relacji żeby się zserializować razem z nimi. Mogłoby dojść do sytuacji, że zostałaby pobrana cała baza. Niczego nie trzeba nadpisywać (a jeśli już to Doctrine_Record::serialize()), wystarczy przed serializacją pobrać do obiektu odpowiednie dane.
starach
26.06.2010, 10:37:42
Już to obszedłem nadpisując serializacje. Szkoda że nie ma opcji manipulacji serializacją.
XianN
27.06.2010, 09:16:46
Znalazlem rozwiazanie tego problemu, okazalo sie prostsze niz bym sie spodziewal

$obiekt->serializeReferences(true);
Wiecej:
serializeRefefences().
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.