Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony] doSelectJoin - błąd
Forum PHP.pl > Forum > PHP > Frameworki
janek9
Mam glupi problem z ktorym nie moge dac rady. Mam takie 2 tabele w schema:

<
  1. tp_user_award:
  2. id: ~
  3. id_award: { type: integer, foreignTable: tp_award, foreignReference: id }
  4. is_blocked: { type: boolean, default: False }
  5.  
  6. tp_award:
  7. id: { type: integer, primaryKey: true, autoincrement: true }
  8. award: { type: integer, size: 4}


a w TpUserAwardPeer mam tak:

  1. static public function getAwardFromUser($id)
  2. {
  3. $c = new Criteria();
  4.  
  5. $c->add(self::ID_USER, $id);
  6. $c->add(self::IS_BLOCKED, False);
  7.  
  8. return self::doSelectJoinTpAward($c);
  9. }


i w akcji tak:

  1. public function executeIndex(sfWebRequest $request)
  2. {
  3. $award = TpUserAwardPeer::getAwardFromUser($this->getUser()->getGuardUser()->getId());
  4.  
  5. $p = 0;
  6.  
  7. foreach($award as $aw)
  8. {
  9. $p += $aw->getIdAward()->getAward();
  10. }
  11.  
  12. $this->user_award = $p;
  13. }


pokazuje mi ze:

  1. atal error: Call to a member function getAward() on a non-object


co robie takiego zle, ze wyskakuje mi taki blad? Jak mam sie dobrac do Award z tabeli tp_award ?
phpion
Błąd otrzymujesz dlatego, że getIdAward() zwraca identyfikator (liczbę), a nie obiekt. Powinno zadziałać tak:
$aw->getAward()->getAward();
lub
$aw->getTpAward()->getAward();

PS: a nie lepiej zrobić po prostu SELECT SUM() na poziomie bazy danych?
janek9
Dzieki phppion! Działa TpAward()->getAward() i zlicza dobrze:). Spróbuje Twojej rady, chyba nawet bedzie lepiej.
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.