Doctrine 2 / Symfony Many To One获取对象

时间:2016-04-09 21:45:02

标签: php sql symfony doctrine-orm doctrine

我有三个表/实体:

  • 游戏

  • SiteGames

  • 网站

我必须在Doctrine 2中编写查询,这将使所有游戏(作为对象)可用于特定站点(将此特定站点作为对象)。 唯一的关系(多对一)在表/实体SiteGame中,它包含列/对象:

  • 游戏/ game_id
  • 站点/ SITE_ID

通常,原始SQL看起来像(并且会起作用):

SELECT g FROM site_games s INNER JOIN games g ON g.id=s.game_id WHERE site_id='4';

这是我在Doctrine中尝试但失败的原因:

$qb = $this->getEntityManager()->createQueryBuilder();
$qb->select("s.game")
            ->from("MyBundle:SiteGame","s")
            ->where("s.site = :site")
            ->setParameter("site",$site);

错误:无效的PathExpression。必须是StateFieldPathExpression。

$qb = $this->getEntityManager()->createQueryBuilder();
$qb->select("g")
            ->from("MyBundle:SiteGame","s")
            ->join("s.game","g")
            ->where("s.site = :site")
            ->setParameter("site",$site);

错误:如果不选择至少一个根实体别名,则无法通过标识变量选择实体。

还有许多类似错误的各种组合。

我在整个互联网上找不到任何有用的东西。

0 个答案:

没有答案