![]() |
![]() |
-Atmozfear- |
![]()
Post
#1
|
Goście ![]() |
Witam, otóż mam taki problem że nie wiem jak zapisać w pętli nowe rekordy do bazy danych bez podawania ich idu, używając Symfony 2 z Doctrine 2.
Gdzie bym nie wstawił persist, flush i getManager() w stosunku do pętli tak zawsze zapisany będzie tylko pierwszy rekord, a każde kolejne będą traktowane jako jego aktualizacje, no, chyba że wstawię wszystko na chama w pętli, ale to chyba nie za dobry pomysł . A więc, co robię źle i jak zrobić to poprawnie? Sprawdzałem dokumentacje i google ale chyba jestem pierwszym takim inteligentem żeby taki problem mieć ![]() |
|
|
![]() |
-Atmozfear- |
![]()
Post
#2
|
Goście ![]() |
No dobra, zadowoliłem się flush'em, przepraszam ze post pod postem ale teraz jest inny problem:
Jak wyciągnąć powiązane dane? W dokumentacji podane jest coś takiego:
Jak rozumiem getCategory ma wywołać zapytanie do bazy danych po te dane, ale nic takiego się nie dzieje. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 27 Pomógł: 4 Dołączył: 27.01.2012 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
Najpierw trzeba stworzyć relacje między tabelami w konfiguracji. http://symfony.com/doc/current/book/doctri...ps-associations . Dokładniej mówiąc przyjrzyj się relacjom OneToOne, OneToMany, ManyToOne i jak je skonfigurować
Po odpowiednim skonfigurowaniu nie ma już problemu z wyciąganiem powiązanych elementów, bo doctrine sam to obsługuje w sposób, który opisałeś. Pozdrawiam, Piotr Pasich -------------------- Zapraszam do głosowania na agendę PHPCon Poland 2013 http://www.phpcon.pl/2013/pl/agenda.
--- Piotr Pasich piotr.pasich@xsolve.pl www.xsolve.pl |
|
|
-Atmozfear- |
![]()
Post
#4
|
Goście ![]() |
Dzięki za odpowiedź, jednak już takowe posiadam, generate entities i schema update też przeprowadzone bez błędów, jednak zauważyłem że schema validate sypie błędami dla wszystkich powiązań, więc może coś jednak mam źle zrobione?
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 395 Pomógł: 80 Dołączył: 24.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
http://docs.doctrine-project.org/en/2.0.x/...on-mapping.html rozdział 5.14, zobacz na co powinno wskazywać "inversedBy" i "mappedBy" a na co u Ciebie wskazuje.
Zauważ także że encje są pisane w formie pojedyńczej. -------------------- |
|
|
-Atmozfear- |
![]()
Post
#6
|
Goście ![]() |
Jeśli dobrze pamiętam, to kończyło się to utworzeniem tylko jednej kolumny w tabeli groups_accounts, o co raczej mi nie chodziło.
W każdym bądź razie nie getCategory() wywołuje zapytanie do bazy danych, a dopiero getName(), tak więc z faktem wymienionym powyżej, rozwiązaniem przykładowym jest kretyńsko proste:
Czyli w sumie tak czy inaczej będę się musiał użerać z DQL. Czy to całe pisanie encji w liczbie mnogiej a pojedynczej robi jakąś różnice, poza estetyczną? |
|
|
-Atmozfea- |
![]()
Post
#7
|
Goście ![]() |
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 23:33 |