2013-01-03 18 views
0

我有兩個連接的表格。隨着print_r我得到這樣的事情Symfony2 - 如何打印加入的表格輸出

Array 
(
    [0] => GameShelf\UsersBundle\Entity\Ownership Object 
     (
      [id:GameShelf\UsersBundle\Entity\Ownership:private] => 1 
      [type:GameShelf\UsersBundle\Entity\Ownership:private] => 1 
      [time:GameShelf\UsersBundle\Entity\Ownership:private] => 2010-02-05 11:00:00 
      [game:GameShelf\UsersBundle\Entity\Ownership:private] => Doctrine\ORM\PersistentCollection Object 
       (
        [snapshot:Doctrine\ORM\PersistentCollection:private] => Array 
         (
          [0] => GameShelf\GamesBundle\Entity\Game Object 
           (
            [id:GameShelf\GamesBundle\Entity\Game:private] => 1 
            [parent_id:GameShelf\GamesBundle\Entity\Game:private] => 0 
            [name:GameShelf\GamesBundle\Entity\Game:private] => Somebody 
            [slug:GameShelf\GamesBundle\Entity\Game:private] => somebody 
            [reldate:GameShelf\GamesBundle\Entity\Game:private] => 2010-10-10 
            [genres:GameShelf\GamesBundle\Entity\Game:private] => 1,2 
            [platforms:GameShelf\GamesBundle\Entity\Game:private] => 1,2 
            [developers:GameShelf\GamesBundle\Entity\Game:private] => 1,2 
            [description:GameShelf\GamesBundle\Entity\Game:private] => Lipsum 
            [desc_src:GameShelf\GamesBundle\Entity\Game:private] => http://onet.pl 
            [rate:GameShelf\GamesBundle\Entity\Game:private] => 0 
            [ownership:GameShelf\GamesBundle\Entity\Game:private] => GameShelf\UsersBundle\Entity\Ownership Object 
*RECURSION* 
           ) 

         ) 

我想,是打印name:GameShelf\GamesBundle\Entity\Game:private] => Somebody,但我不知道怎麼辦。我用嫩枝,我現在的模板是:

{% for game in games %} 
{{ game.id }} 
{% endfor %} 

但它只idOwnership表輸出。

我的控制器:

public function getOwnedAction($type = 1, $user = 1) { 
     $games = $this->getDoctrine() 
      ->getRepository('GameShelfUsersBundle:Ownership') 
      ->getOwned(); 
     echo '<pre>'; 
     //print_r($games); 
     echo '</pre>'; 

     return $this->render('GameShelfUsersBundle:Default:index.html.twig', 
      array(
       'games' => $games->getGame() 
      )); 
    } 

回購:

public function getOwned($type = 1, $user = 1) { 
     $query = $this->getEntityManager() 
      ->createQuery(' 
       SELECT o, g FROM GameShelfUsersBundle:Ownership o 
       JOIN o.game g 
       WHERE o.type = :type 
      ') 
      ->setParameter('type',$type); 

     try { 
      return $query->getResult(); 
     } catch (\Doctrine\ORM\NoResultException $e) { 
      return null; 
     } 
    } 

它的工作原理,只有當我設置getSingleResult,而不是getResult

回答

0

在小枝你使用相同的方法來訪問實體信息。

[編輯]看遞歸後,你可能需要做這種方式:對非調用一個成員函數getGame():

{% for owners in games %} 
    {% for game in owners.getGame() %} 
     {{ game.getId() }} 
     {{ game.getName() }} 
     {{ game.getParentId() }} 
     {# etc... #} 
    {% endfor %} 
{% endfor %} 
+0

你的代碼返回往常一樣,'致命錯誤對象放在第24行的D:\ !! XAMPP \ htdocs \ Symfony \ src \ GameShelf \ UsersBundle \ Controller \ DefaultController.php中。或者,當我刪除' - > getGame()'時,它什麼也不返回。 –

+0

@TomekBuszewski我編輯了我的答案。仔細觀察可能會做一些正義。讓我知道這是否有效。如果'game.getId()'失敗,如果你沒有這些方法,你總是可以做'game.id'(你應該) – phpisuber01