如何在doctrine/php中聚合实体属性中不同表中的信息?

如何在doctrine/php中聚合实体属性中不同表中的信息?,php,doctrine-orm,doctrine,Php,Doctrine Orm,Doctrine,我将PHPSymfony5.2与orm结合使用。我有以下实体: Question -------- id questionText Answer ------ id answerText questionId GivenAnswer ----------- id answerId 用户进入我的网站,可以回答问题。每个问题有两到四个答案。发送答案时,答案会保存在表GivenAnswer中,在表中,每个答案都会创建一个带有答案ID的新行 现在我想在PHP中的应答实体中有一个额外的字段,我称之为

我将PHPSymfony5.2与orm结合使用。我有以下实体:

Question
--------
id
questionText

Answer
------
id
answerText
questionId

GivenAnswer
-----------
id
answerId
用户进入我的网站,可以回答问题。每个问题有两到四个答案。发送答案时,答案会保存在表GivenAnswer中,在表中,每个答案都会创建一个带有答案ID的新行

现在我想在PHP中的应答实体中有一个额外的字段,我称之为givenTotal。在这里,我想访问给定答案的数量,如下所示:

echo "Answer given " . $answer->givenTotal() . " times";

我知道如何使用SQL请求这些信息,但我不想使用answer对象循环所有问题,以将这些信息加载到属性中。是否有一种编码方法,使得条令orm将givenaswer计数加载到此属性中?

条令有一个称为的功能。在额外的惰性关联上,
count()
发出计数查询,并且不会完全加载所有关联的实体

只需将该标志添加到从
Answer
GivenAnswer
的关系中:

/**
* @Entity
*/
Class Answer
{
     /**
     * @ManyToMany(targetEntity="GivenAnswer", mappedBy="answer", fetch="EXTRA_LAZY")
     */
    public $givenAnswers;

    public function getGivenAnswers() :ArrayCollection
    {
        return $this->givenAnswers;
    }
}  
然后使用
$answer->getGivenAnswers()->count()