Symfony2 / Doctrine Как хранить количество связанных объектов в сущности

Я установил пакет, в котором есть тестовый объект, который содержит несколько объектов testQuestion, каждый из которых является вопросом и данным ответом (или 0, если ответа нет). От ветки я хочу быть в состоянии получить информацию от тестового объекта, чтобы сказать, сколько существует вопросов и на сколько уже получено ответов.

Я создал запрос, чтобы вытащить это из БД, и в тестовом объекте я создал 2 новых свойства для хранения количества вопросов и числа ответивших. Я создал TestRepository, внутри которого находится запрос. Тестовый объект проверяет, имеет ли объект установленное значение и, если нет, загружает его, когда это необходимо, поскольку мне всегда не нужна эта информация.

Однако я застрял в том, как связать код репозитория с тестовым объектом, как для вызова функции репо, так и для функции репо для сохранения значений в соответствующем тестовом объекте.

Acme / Quizbundle / Test / test.php

namespace Acme\QuizBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Acme\QuizBundle\Entity\TestRepository;

/**
 * @ORM\Entity(repositoryClass="Acme\QuizBundle\Entity\TestRepository")
 * @ORM\Table(name="test")
 */
class Test    {
protected $numQuestions = null;
protected $numQuestionsAnswered = null;

public function getNumQuestionsAnswered () {
    if (is_null($this->numQuestionsAnswered)) {
        $repository = $this->getEntityManager()->getRepository('\AcmeQuizBundle\Test');
        $values = $repository->calculateNumQuestions();
    }
    return $this->numQuestionsAnswered;
}

Acme / Quizbundle / Test / TestRepository.php (есть подходящий метод для getNumQuestions ())

namespace Acme\QuizBundle\Entity;

use Doctrine\ORM\EntityRepository;

class TestRepository extends EntityRepository {

private function calculateNumQuestions() {

    $qb = $this->getEntityManager()
                ->createQueryBuilder();

    $query = $this->getEntityManager()->createQueryBuilder()
                        ->select('COUNT(id)')
          ->from('testquestion', 'tq')
          ->where('tq.test_id = :id')
          ->setParameter('id', $this->getId())
          ->getQuery();

    $result = $query->getSingleScalarResult();
    var_dump($result);
    }

Ответы на вопрос(1)

Ваш ответ на вопрос