Невозможно вызвать функции объекта из возвращенного запроса к хранилищу - PullRequest
0 голосов
/ 30 ноября 2011

Я пытаюсь получить объект из моей базы данных в symfony2 и доктрине, используя один из моих классов сущностей и класс хранилища.

Вот вызов функции:

$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 Ответ

1 голос
/ 30 ноября 2011

Обязательно используйте оператор -> вместо.оператор.Кроме того, в этом конкретном примере вы не можете установить '20' в качестве zoneId, так как это не Entity, представляющий TableTable.

...