我有三个表/实体:
游戏
SiteGames
网站
我必须在Doctrine 2中编写查询,这将使所有游戏(作为对象)可用于特定站点(将此特定站点作为对象)。 唯一的关系(多对一)在表/实体SiteGame中,它包含列/对象:
通常,原始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);
错误:如果不选择至少一个根实体别名,则无法通过标识变量选择实体。
还有许多类似错误的各种组合。
我在整个互联网上找不到任何有用的东西。