Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SF][SF2][Doctrine2]
Forum PHP.pl > Forum > PHP > Frameworki
mimol
Witam,
Mam Entity Order, który jest połączony w relacji O2O z Movie,
id|order_id|
1| 1
2 |1
Jak napisać zapytanie, żeby zwróciło mi wyniki, gdzie order_id =1?
Nie mogę po prostu podać order.id jako integer
  1. return $this->getEntityManager()->createQueryBuilder()
  2. ->select('o')
  3. ->from('MyMoviesBundle:Orders', 'o')
  4. ->where('o.order_id = 1')

Niestety tak nie mogę,
Czy jest jakiś sposób na zwrócenie wyników, nie wysylając jako order całego obiektu entity order a tylko jego ID?
Crozin
1. Raczej nie powinieneś operować na ID tylko na obiektach.
2. DQL: MEMBER OF: https://doctrine-orm.readthedocs.org/en/lat...2member%20of%22
mimol
Czy da się to użyć w queryBuilderze?
Próbuję i ciągle jakiś błąd
jesli próbuje przez create query dostaje
Cytat
Error: Invalid PathExpression. Must be a CollectionValuedAssociationField.
ano
Eeeee.... a czy przypadkiem nie powinieneś miec tak napisanego tego zapytania?
  1. return $this->getEntityManager()->createQueryBuilder()
  2. ->select('m')
  3. ->from('MyMoviesBundle:Movie', 'm')
  4. ->where('m.order_id = 1')

mimol
@ano
Dostaje błąd
Cytat
MovieHasOrder has no field or association named movie_id
thek
Może rzuć encje i co chcesz osiągnąć, bo mam jakieś dziwne wrażenie, że użyłes złych relacji (choć mogę się mylić) i można problem rozwiązać, nieco kod zmieniając.
mimol
nie potrafięsię przyzwyczaić do tej polskiej nazwy wink.gif
Movie http://pastebin.com/MFUCKU1F
MovieHasOrder http://pastebin.com/B07GZstJ
Orders http://pastebin.com/3YRnKbrF (nazwa order jest zarezerwowana)
W skrócie
movie(id, name)
order(id, user_id, session)
movieHasOrder(id, product_id, order_id, amount)
user(id, name)

W kontrolerze mam akcję dodaj, (leci do niej formularz w którym jest pole ID,Amount) i dzięki niemu dodaje np film do bazy.
Ma to swoją wadę, ponieważ za każdym razem muszę pobrać encje Movie, tylko po to, żeby później móc dodać go do bazy [Nie mogę podać MOIVE_ID(jako integer) do Obiektu do MovieHasOrder]
destroyerr
Cytat
ponieważ za każdym razem muszę pobrać encje Movie, tylko po to, żeby później móc dodać go do bazy

Rozwiązanie tego problemu.
mimol
@destroyerr
dzięki za odpwiedź
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.