![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 47 Pomógł: 0 Dołączył: 25.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
W sumie jest to szybkie pytanie.
Szukam rekordu o danym polu w bazie: Jeśli nie ma, to tworzę nowy obiekt i dodaję do bazy. Jest OK. Natomiast jeśli istnieje, to próbowałem się odwołać do obiektu $offer, np:
co skutkowało błędem. Pomogło wykonanie kolejnego zapytania:
Czy w Doctrine2 nie ma możliwości wykonania aktualizacji na obiekcie pobranym przez metodę findBy (albo inną niż "find()")? Czy może ja coś źle robiłem? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 1 Dołączył: 24.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
Musisz użyć findOneBy, ponieważ w przeciwnym przypadku dostajesz jakąś tablicę (ArrayCollection lub coś w tym stylu) (IMG:style_emoticons/default/smile.gif) Generalnie polecam używać środowiska deweloperskiego (zamiast app.php masz app_dev.php). Tam wyświetliłby Ci się przecież błąd, że jest to obiekt innej klasy (ew. non-object, bo nie pamiętam co Doctrine zwraca w findBy (IMG:style_emoticons/default/smile.gif) ) Ten post edytował danio1021 29.10.2012, 21:05:00 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 395 Pomógł: 80 Dołączył: 24.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Metoda findby(), zwraca tablicę wyników, nawet gdy będzie to jeden rekord, zwrócona będzie tablica z tym jednym rekordem, więc poprawnie powinna sie sprawdzać
Częściej wykorzytuje się jednak metodę findOneBy(), wraz z blokami try catch, metoda ta zwróci jeden pasujący rekord lub wyrzuci wyjątek gdy będzie więcej niż jeden lub nie będzie ich wcale. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 47 Pomógł: 0 Dołączył: 25.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki wielkie - muszę uważnej czytać błędy (IMG:style_emoticons/default/smile.gif)
findByOne jest tym, czego szukałem (IMG:style_emoticons/default/wink.gif) |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 1 Dołączył: 24.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
No i warto zacytować błąd przy pisaniu tematu (IMG:style_emoticons/default/smile.gif)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 23:45 |