Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何(更好地)选择原则中的AS';s查询生成器_Php_Symfony_Doctrine Orm_Twig - Fatal编程技术网

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个查询而不是一个查询,对吗?