我有一个实体League
和Season
,而赛季与联盟有@ManyToOne
的关系。
现在在我的联盟控制器的showAction
中,我希望为所有季节提供一个属于当前($ id)联盟的视图。
因此我在findAllBelongingSeasons
中实现了LeagueRepository
功能,如下所示:
public function findAllBelongingSeasons($league_id)
{
return $this->getEntityManager()
->createQuery('
SELECT s FROM xxx:Season s
WHERE s.league_id = :league_id'
)
->setParameter('league_id', $league_id)
->getResult();
}
问题是,我现在得到消息,课程季节没有现场联盟_id。舒尔,在季节表的数据库中存在。但是,学说现在想要通过对象来处理它,并且季节中没有联盟_id,因为它具有$league
的属性@ORM\ManyToOne(targetEntity="xxx\xxx\Entity\League")
已配置。
那该怎么办呢?
感谢您的帮助:)
答案 0 :(得分:1)
public function findAllBelongingSeasons($league_id)
{
return $this->getEntityManager()
->createQuery('
SELECT s FROM xxx:Season s
WHERE s.league = :league_id'
)
->setParameter('league_id', $league_id)
->getResult();
}
是正确的方法(在league_id
中修改league
)
基本上,正如您所说,doctrine处理像“proxy”一样使用的对象来访问db表和列。这样你就必须引用doctirne(objects)映射而不引用db相应的字段