Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Doctrine oraz dziedziczenie, Update entity i zmiana jego disciminator
Fluke
post
Post #1





Grupa: Zarejestrowani
Postów: 247
Pomógł: 9
Dołączył: 20.09.2010
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Witam,

Ostatnio napotkałem się na mały problem odnośnie dziedziczenia w Doctrine 2(SINGLE_TABLE).
Mam tabelę `product` a w niej typ produktu `sell`, 'buy', 'sell-buy'. Chciałem sobie zrobić dziedziczenie na podstawie tych typów. Wszystko śmiga. Problem pojawia się w tedy gdy edytuję np Product\Sell i chciałbym go zmienić na Product\Buy, a disciminator column nie może się pojawić w klasie Product, chyba sam doctrine zmienia to pole na podstawie nazwy klasy. Kombinowałem na taki sposób, że kopiowałem dane z obiektu Sell do obiektu Buy(wraz z id) ale doctrine tworzy mi nowy rekord.

Zastanawia mnie jak to dziedziczenie ma się do modyfikacji danych.

Pozdrawiam (IMG:style_emoticons/default/smile.gif)

Ten post edytował Fluke 3.09.2013, 20:10:55
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


1. Takie coś, to miejsce na użycie typów generycznych - niestety PHP ich nie wspiera.
2. Dlaczego w ogóle chcesz nagle zmieniać w swojej aplikacji typ obiektu (pomijając już w ogóle Doctrine i bazy danych) - jak już pisałem nie jest to normalna operacja z punktu widzenia OOP.

Właściwie jedyne rozwiązanie jakie przychodzi mi do głowy to ręczne wykonanie zapytania zmieniającego wartość kolumny disciminator oraz ręczne zajęcie się wszelkim możliwymi konsekwencjami tego (usunięcie/zmodyfikowanie obiektów z relacji).
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 11.10.2025 - 09:43