![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 447 Pomógł: 191 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Mam dwie klasy Entity: Background oraz BackgroundOrder.
Background to tak jakby produkt, backgroundOrder to zamówienie produktu (tła). Każde zamówienie posiada jedno tło. BackgroundOrder ma także referencje do innych encji (rozmiary, kupujący itd) ale to w tym przypadku nie istotne. Mam formularz, który służy do zamówienia tego tła. Tło (background) jest wybierane z lisy "select". W formularzu wygląda to tak :
W kontrolerze mam taki kod.
Ten kod działa ( mam ustawione cascade persist ) jednak tworzy mi nowy rekord w tabeli backgrounds co niezbyt mi odpowiada. Chcę, aby do zamówienia zostało dołączone istniejące już w bazie tło, a nie jego kopia. Inaczej mówiąc, mam w tabeli backgrounds dwa rekordy: id | name ------------------- 1 | background 1 2 | background 2 ------------------- Tworzę zamówienie wybierając tło pierwsze (background 1), to chcę, żeby w tabeli backgroundOrder w polu background był id = 1. Ten kod natomiast tworzy kopię tego tła i do mojego zamówienia jest linkowane nowe tło ( w tym przypadku o id 3). Jeśli mój kod zmodyfikuję w ten sposób:
To wtedy działa jak należy. Tutaj fragment mojej entity:
W czym mam błąd i co powinienem zrobić, aby to naprawić ? Jeśli podałem zbyt niewiele informacji, proszę napisać, co jeszcze mam wkleić. edit:// Czemu jak dałem tylko tag [Symfony2] to nie mogę wysłać wiadomości ? (że niby tagów za mało) Ten post edytował peter13135 28.06.2013, 22:10:02 -------------------- :)
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 272 Pomógł: 19 Dołączył: 29.07.2006 Ostrzeżenie: (10%) ![]() ![]() |
jesli robisz Persist dla backgroundorder to tworzy nowy rekord - czyli prawidłowo. Pokaż całość akcji z kontrolera.
-------------------- Pomogłem ?? Kliknij pomógł :) || kallosz.pl
----------------------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 13.07.2025 - 19:44 |