[SF2][Symfony2][doctrine] po probie zapisania nowego obiektu nie widzi zmiany |
[SF2][Symfony2][doctrine] po probie zapisania nowego obiektu nie widzi zmiany |
15.12.2017, 12:57:41
Post
#1
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 1 Dołączył: 18.02.2015 Ostrzeżenie: (0%) |
cześć,
mam następujący problem moja encja wygląda mniej więcej tak: (oczywiście są tam komentarze przy mapowaniu oraz setery i getery)
i musi tak być bo oba pola są przydatne przy próbie za setowania czego kol wiek do
wywala mi SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'post_id' cannot be null to musi być tak zrobione, nie ma możliwości (ze względów wydajnościowych) na wyszukanie obiektu i zrobienie
Ten post edytował robert0770 15.12.2017, 13:05:51 |
|
|
15.12.2017, 17:43:22
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) |
|
|
|
15.12.2017, 22:06:32
Post
#3
|
|
Grupa: Zarejestrowani Postów: 618 Pomógł: 143 Dołączył: 22.12.2010 Ostrzeżenie: (0%) |
+ jeszcze, albo wiążesz przez setPost($obiekt), albo przez $repository->getReference('Entity', $id) albo zostawiasz samo post_id bez żadnego mapowania jako zwykłą kolumnę integer.
|
|
|
18.12.2017, 08:25:08
Post
#4
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 1 Dołączył: 18.02.2015 Ostrzeżenie: (0%) |
to normalka, cały projekt który przejąłem po sporej grupie programistów gdzie jest z 40 encji, ma tak zdefiniowane pola dla ułatwienia, wyciąganie danych działa jak najbardziej
|
|
|
18.12.2017, 14:25:35
Post
#5
|
|
Grupa: Zarejestrowani Postów: 279 Pomógł: 42 Dołączył: 10.10.2011 Ostrzeżenie: (0%) |
Pokaż ciało setPost(); bo obstawiam że to nie jest zwykły setter i finalnie próbujesz ustawić post o id 999 który nie istnieje w bazie.
Ten post edytował Puszy 18.12.2017, 14:25:49 |
|
|
21.12.2017, 10:45:37
Post
#6
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 1 Dołączył: 18.02.2015 Ostrzeżenie: (0%) |
setPost to zwykły setter ustawiający obiekt
setPostId to zwykły setter ustawiający inta
finalnie chcialem ustawić setPostId(0), ale zarówno z 0 jak i z np id który jest w bazie czyli np 69 też to samo wywala |
|
|
21.12.2017, 12:09:43
Post
#7
|
|
Grupa: Zarejestrowani Postów: 279 Pomógł: 42 Dołączył: 10.10.2011 Ostrzeżenie: (0%) |
Nic tu nie pasuje:
1. W jednej encji masz pole $postId które w bazie nazywa się post_id oraz pole $post które w bazie też nazywa się post_id, validate-schema powinno Ci sypnąć chyba jakimś błędem. 2. Nie rozumiem po co trzymać relację do encji Abc\Efg\Entity\Post i jednocześnie pole integer z id postu. Właśnie dla uniknięcia takich sytuacji korzysta się z ORM. 3. Jeżeli ustawisz tylko $postId poprzez setPostId() to nie będziesz miał relacji między tabelami. 4. W $postId możesz wrzucić dowolną wartość, zarówno istniejących jak i nieistniejących postów, pomijam fakt dubli. Wniosek: wywal pole $postId, i korzystaj z referencji tak jak Ci pisał ohm
|
|
|
Wersja Lo-Fi | Aktualny czas: 23.04.2024 - 11:22 |