Non è possibile richiamare le funzioni di entità da una query repository restituita
Domanda
Sto cercando di recuperare un oggetto dal mio database in Symfony2 e la dottrina utilizzando una delle mie classi di entità e una classe repository.
Questa è la chiamata di funzione:
$game = $em->getRepository('MLBPBeerBundle:TableGame')->findBygameId($gid);
$game.setZoneTableid('20');
Ecco un frammento della mia classe repository:
class TableGameRepository extends EntityRepository
{
public function findBygameId($gid)
{
return $this->getEntityManager()
->createQuery('SELECT g FROM MLBPBeerBundle:TableGame g WHERE g.gameId = ' . $gid)
->getSingleResult();
}
E qui è un frammento della mia classe entità:
/**
* 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;
}
E qui è il mio messaggio di errore:
Chiama per undefined function MLBP \ BeerBundle \ Controller \ setZoneTableid () Grazie!
Soluzione
Assicurarsi di utilizzare l'operatore -> al posto del. operatore. Inoltre, per questo specifico esempio, non è possibile impostare '20' come l'IDArea in quanto non è l'entità che rappresenta un TableTable.
$game->setZoneTableid(<Some Table Entity>);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow