Wpis z mikrobloga

#symfony #symfony2 #php #doctrine #mysql
Mam dwie encję: Post i Category. Post zawiera pole $category, a Category pole $posts - czyli typowa relacja one to many.
Chciałbym teraz pobrać post z powiązanym obiektem kategorii w jednym zapytaniu. W tym celu używam takiej funkcji umiejscowionej w PostRepository. Niestety ten DQL w połączeniu z kluczami obcymi generuje nieskończenie zagnieżdżone zapytanie ( ͡° ʖ̯ ͡°)
Jak powinienem to zrobić w prawidłowy sposób, Murki?
  • 26
użyłem QB, ale to nadal to samo zapytanie


@DiKey: Myślałem, że masz gdzieś błąd w DQLu i z tego powodu nie działa.

OutOfMemoryException


@DiKey: A jak zwiększysz pamięć? Ile Ci tych encji zaciąga? Spróbuj $qb->setMaxResults(1) i zamiast getSingleResult() użyj getResult() – nadal kończy się pamięć?

Jak nie joinujesz to jest OK?
@MacDada: ja mam tutaj jeden post i jedną kategorię w bazie, więc zwiększenie pamięci to kiepski pomysł xD
Po prostu zapytanie się zapętla. z setMaxResults(1)->getResult() to samo (,)
@DiKey: możesz wrzucić gdzieś cały odpowiedzialny kod? tzn tak, żebym mógł u siebie odpalić, czyli:

1. obie encje
2. repo
3. kontroler

Bo powyższe „musi” działać ;-) Jaki masz stacktrace? Logi?
@MacDada: app/console doctrine:schema:validate

[Mapping] OK - The mapping files are correct.

[Database] OK - The database schema is in sync with the mapping files.

app/console doctrine:mapping:info

[OK] Blogger\BlogBundle\Entity\Category

[OK] Blogger\BlogBundle\Entity\Post


Jeszcze raz: bez joina jest OK?

@MacDada: tak
@DiKey: sprawdź w logach jakie zapytanie się wykonuje sql do bazy i wykonaj je samemu - jeśli pobierze - to szukaj problemów po stronie kodu / konfiguracji phpa ale raczej to 2 poza tym widzę że skoro zależy ci nawet na takich pierdołach to skorzystaj dodatkowo z partiala oraz hydracji na tablicy(bo po cholerę ci niepełne obiekty)