Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony] Problem z łączeniem dwóch tabel
Forum PHP.pl > Forum > PHP > Frameworki
vonski
Witam.
Na początek zaznaczę, że przygodę z Symfony rozpocząłem bardzo niedawno. I niestety już napotkałem problem, mianowicie... proste złączenie tabel smile.gif

Mam takie tabele:

rider:
rider_id
rider_name
nation_id
...

nation:
id
name
flag

I chciałem złączyć te tabele używając id danego państwa (nation.id i rider.nation_id). Może mi ktoś wytłumaczyć jak to ma być zrobione? smile.gif
Próbowałem tak:

  1. static public function getLatest()
  2. {
  3. $criteria = new Criteria();
  4. $criteria->addJoin(RiderPeer::NATION_ID, NationPeer::ID, Criteria::LEFT_JOIN);
  5.  
  6. return self::doSelect($criteria);
  7. }


Funkcja getLatest() znajduje się w pliku RiderPeer.php .. niestety nie działa, tzn zapytanie się wykonuje, ale jego składnia wygląda tak:

  1. SELECT rider.ID, rider.NAME, rider.SURNAME, rider.NATION_ID, rider.BIRTH_YEAR, rider.IMG, rider.CREATED_AT FROM `rider` LEFT JOIN nation ON (rider.NATION_ID=nation.ID)


Jak to napisać, żeby po tym SELECT znalazły się jeszcze nation.ID, nation.NAME i nation.FLAG?
Dodam jeszcze, że próbowałem też pokombinować coś z ::doSelectJoinAll albo ::doSelectJoin* i... dostaję error:

"Fatal error: Call to undefined method RiderPeer::doselectjoinall() in C:\wamp\www\zuzel\lib\model\RiderPeer.php"

Też nie mam pojęcia dlaczego odwołanie do nieistniejącej metody, skoro na stronie symfony napisane jest, że ta funkcja jest od 1.0.16 a ja używam 1.2.8.


Z góry dziękuję za pomoc.

Pozdrawiam
krl_b
pokaż dokładny schemat bazy,
czy na pewno nation_id w riderze jest zdefiniowane jako klucz obcy do nation ?
Gdyby tak było istniała by metoda doSelectJoinNation
vonski
No tak smile.gif nie zdefiniowałem klucza obcego... dzięki wielkie, teraz już hula smile.gif
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.