Non è possibile richiamare le funzioni di entità da una query repository restituita

StackOverflow https://stackoverflow.com/questions/8322036

  •  26-10-2019
  •  | 
  •  

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!

È stato utile?

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
scroll top