我有一种OneToMany
关系,一支足球队有很多球员。我想列出所有足球队并显示每支球队队长的名字。
每个玩家实体都有一个外键(team_id)和一个设置为 0 或 1 的字段“队长”。我目前正在运行以下查询:
$teams = $this
->getDoctrine()
->getRepository('FootballWebsiteBundle:Team')
->createQueryBuilder('t')
->setFirstResult(($pageNumber * $resultPerPage) - $resultPerPage)
->setMaxResults($resultPerPage)
->add('where','t.deleted = 0')
->add('orderBy', 't.name DESC')
->getQuery()->getResult();
然后,当我遍历树枝中的每个团队时,我运行 team.getTeamCaptain().getName() ,这是我的团队实体中的一个过滤器:
public function getTeamCaptain() {
$them = $this->players->filter(function($p) {
return $p->getCaptain() == 1;
});
return $them->first();
}
有没有更好的方法来运行这个查询?