Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony] Problem ze złączeniem dwóch tabel
Forum PHP.pl > Forum > PHP > Frameworki
stirith
Oto mój kod:

Kod
$c = new Criteria();
     $c->add('id_user',
         $this->getUser()->getProfile()->getUserId());
     $c->addAscendingOrderByColumn(
         userBuildingsPeer::ID_BUILDING);
     $this->buildings = userBuildingsPeer::doSelectJoinAll($c);


który generuje zapytanie:

Kod
SELECT user_buildings.ID, user_buildings.ID_USER, user_buildings.ID_BUILDING, user_buildings.LEVEL, user_buildings.QUANTITY, user_buildings.UPDATED_AT, buildings.ID, buildings.NAME_BUILDING, buildings.PRODUCTION, buildings.PRICE FROM `user_buildings` LEFT JOIN buildings ON (user_buildings.ID_BUILDING=buildings.ID) WHERE id_user=1 ORDER BY user_buildings.ID_BUILDING ASC


Pomimo że są pobrane takie kolumny jak buildings.NAME_BUILDING -> to wywala błąd przy próbie wyświetlenia :

Kod
<?php foreach ($buildings as $building) : ?>
<li><?php echo $building->getNameBuilding() ?></li>
<?php endforeach ?>


Kod
Call to undefined method BaseuserBuildings::getNameBuilding


co robie źle ?
morgan
Co prawda sam koduje w Doctrine, propela znam bardzo slabo to komunikat bledu mowi o tym ze korzystasz z klasy BaseuserBuildings moze powinnienes zamiast userBuildingsPeer::doSelectJoinAll($c); zrobic BuildingsPeer::doSelectJoinAll($c); albo z obiektu BaseuserBuildings odniesc sie do obiektu Building, nie wiem jak to zrobic w propelu, w doctrine mozna to zrobic $building->get('Building')->getNameBuilding() . Pozdro
Gribo
Spróbuj tak powinno zadziałać:

  1. <?php foreach ($buildings as $building) : ?>
  2. <li><?php echo $building->getBuildings()->getNameBuilding() ?></li>
  3. <?php endforeach ?>
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.