Php 如何(更好地)选择原则中的AS';s查询生成器
我目前正在使用此查询,它可以工作:Php 如何(更好地)选择原则中的AS';s查询生成器,php,symfony,doctrine-orm,twig,Php,Symfony,Doctrine Orm,Twig,我目前正在使用此查询,它可以工作: $qb = $this->getEntityManager()->createQueryBuilder(); $qb ->select('u') ->addSelect('SUM(l.corrects) AS score') ->from(User::class, 'u') ->leftJoin('u.learned', 'l') ->groupBy('u.id') -&
$qb = $this->getEntityManager()->createQueryBuilder();
$qb
->select('u')
->addSelect('SUM(l.corrects) AS score')
->from(User::class, 'u')
->leftJoin('u.learned', 'l')
->groupBy('u.id')
->orderBy('score', 'desc')
;
return $qb->getQuery()->getResult();
但是在twig中,我必须使用
{{user['score']}}
&{{user[0].username}}
。。。我可以怎样做才能在twig中使用{{user.score}
&{{user.username}}
// User.php
public function getScore()
{
$score = 0;
foreach($this->learned as $learned) {
$score += $learned->getCorrects();
}
return $score;
}
您可以使用
{{user.score}
如果您在您的用户实体中这样做怎么办
// User.php
public function getScore()
{
$score = 0;
foreach($this->learned as $learned) {
$score += $learned->getCorrects();
}
return $score;
}
你可以使用
{{user.score}
你不能,至少不做一些工作是不行的。问题是groupBy指令将返回一个简单的数组,并且不会神奇地链接到关联的实体。如果您转储查询结果,它可能会更清晰。您不能,至少不做一些工作。问题是groupBy指令将返回一个简单的数组,并且不会神奇地链接到关联的实体。如果您转储查询结果,它可能会更清晰。因为它将需要n+1个查询而不是一个查询,对吗?因为它将需要n+1个查询而不是一个查询,对吗?