Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Symfony] Problem ze złączeniem dwóch tabel
stirith
post
Post #1





Grupa: Zarejestrowani
Postów: 162
Pomógł: 2
Dołączył: 18.01.2008

Ostrzeżenie: (0%)
-----


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 ?

Ten post edytował stirith 21.10.2009, 01:11:15
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
morgan
post
Post #2





Grupa: Zarejestrowani
Postów: 37
Pomógł: 6
Dołączył: 22.10.2007
Skąd: /dev/null

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
Gribo
post
Post #3





Grupa: Zarejestrowani
Postów: 237
Pomógł: 17
Dołączył: 1.11.2007
Skąd: Zielona Góra

Ostrzeżenie: (0%)
-----


Spróbuj tak powinno zadziałać:

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


Ten post edytował Gribo 21.10.2009, 02:09:40
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 01:33