Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SF2][Symfony2][doctrine], 2 instancje tej samej encji
robert0770
post 7.12.2017, 12:37:06
Post #1





Grupa: Zarejestrowani
Postów: 42
Pomógł: 1
Dołączył: 18.02.2015

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


Cześć,

Czy można w jakiś sposób zrobić 2 instancje ten samej encji?

np

  1. $entity = $repository->find(1);
  2.  
  3. $entity->setCosTam();
  4.  
  5. $entity2 = $repository->find(1);
  6.  
  7. no i w tym momencie entity == entity2


ale chciałbym żeby entity2 było "aktualniejsze", to znaczy bardziej odwzorowywało aktualny stan bazy

  1. em->detach($entity)


nie załatwia sprawy bo w kodzie mam błędy związane z kaskadowym przetwarzaniem

chciałbym żeby referencja do
  1. $entity
została pominięta i został stworzony prawdziwy nowy obiekt

da rade?

ps

  1. em->refresh($entity2)

odświeża zarówno entity jak i entity2

Ten post edytował robert0770 7.12.2017, 13:03:12
Go to the top of the page
+Quote Post
ohm
post 7.12.2017, 17:14:43
Post #2





Grupa: Zarejestrowani
Postów: 618
Pomógł: 143
Dołączył: 22.12.2010

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


Jeśli chcesz mieć identyczne obiekty, to clone, ale nie będą to te same obiekty w bazie. Zależy co chcesz jeszcze zrobić, bo możesz jeszcze przez subscribera wyciągnąć różnice między starym a nowym obiektem, ale to w przypadku jeśli robisz update.
Go to the top of the page
+Quote Post
Crozin
post 7.12.2017, 18:34:24
Post #3





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

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


A możesz napisać co chciałbyś dzięki temu osiągnąć? Bo odnoszę wrażenie, że to nie jest najlepsze rozwiązanie problemu jaki masz.
Go to the top of the page
+Quote Post
Pilsener
post 8.12.2017, 09:40:00
Post #4





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


Czasami zachodzi potrzeba np. skopiowania encji bo chcemy dać userowi możliwość napisania artykułu na bazie już istniejącego.

Mój post:
http://forum.php.pl/index.php?showtopic=25...t&p=1206711

Nie ma innej drogi, jak ręczne ogarnięcie wszystkich relacji i jest to zrozumiałe, bo skąd niby ORM ma wiedzieć, jaki efekt chcemy uzyskać?
Go to the top of the page
+Quote Post
robert0770
post 15.12.2017, 12:46:19
Post #5





Grupa: Zarejestrowani
Postów: 42
Pomógł: 1
Dołączył: 18.02.2015

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


poradziłem sobie, jedyna opcja jaka działała to entity->clear, i z findowanie tego samego obiektu do nowej zmiennej

ps a to co chciałem osiągnąć to ręczna aktualizacja indexu elastica(listener mam wyłączony, pakiet fos) obiektu który był nie kompletny w tej zmiennej którą miałem, dlatego trzeba było pobrać nową/kompletna/aktualną z wszystkimi joinami

Ten post edytował robert0770 15.12.2017, 13:03:50
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 28.03.2024 - 07:40