2011-11-30 71 views
0

我正嘗試使用我的實體類和存儲庫類之一從symfony2和doctrine中的數據庫中獲取對象。無法從返回的存儲庫查詢中調用實體函數

下面是函數調用:

$game = $em->getRepository('MLBPBeerBundle:TableGame')->findBygameId($gid); 
$game.setZoneTableid('20'); 

這裏是我的庫類的一個片段:

class TableGameRepository extends EntityRepository 
{ 
public function findBygameId($gid) 
{ 
    return $this->getEntityManager() 
     ->createQuery('SELECT g FROM MLBPBeerBundle:TableGame g WHERE g.gameId = ' . $gid) 
     ->getSingleResult(); 
} 

這裏是我的實體類的一個片段:

/** 
* MLBP\BeerBundle\Entity\TableGame 
* 
* @ORM\Table(name="table_game") 
* @ORM\Entity(repositoryClass="MLBP\BeerBundle\Repository\TableGameRepository") 
* 
*/ 
class TableGame 
{ 
    /** 
    * @var TableTable 
    * 
    * @ORM\ManyToOne(targetEntity="TableTable") 
    * @ORM\JoinColumns({ 
    * @ORM\JoinColumn(name="ZONE_TABLEID", referencedColumnName="TABLE_ID") 
    * }) 
    */ 
     protected $zoneTableid; 

    /** 
    * Set zoneTableid 
    * 
    * @param MLBP\BeerBundle\Entity\TableTable $zoneTableid 
    */ 
    public function setZoneTableid(\MLBP\BeerBundle\Entity\TableTable $zoneTableid) 
    { 
     $this->zoneTableid = $zoneTableid; 
    } 

這裏是我的錯誤信息:

調用未定義函數MLBP \ BeerBundle \ Controller \ setZoneTableid() 謝謝!

回答

1

請務必使用 - >運算符代替。運營商。此外,對於此特定示例,您不能將'20'設置爲zoneId,因爲它不是代表TableTable的實體。

$game->setZoneTableid(<Some Table Entity>); 
相關問題