три запроса построить в одном - PullRequest
0 голосов
/ 27 мая 2019

Я создаю три запроса на построение запросов, я пытаюсь объединить их в одну доктрину запросов, но я не знаю, как достичь цели создания одного запроса - исключить клиентский сервер двусторонней обработки.пожалуйста, как я могу получить один запрос?

это мой запрос 1

/**
     * @param Analyse $analyse
     * @return mixed
     * @throws \Doctrine\ORM\NonUniqueResultException
     */
    public function countTotalErrorByIdAnalyse(Analyse $analyse)
    {
        return $this->createQueryBuilder('a')
                    ->select('count(a)')
                    ->innerJoin('a.analyse', 'analyse')
                    ->where('analyse.id = :analyse')
                    ->setParameter('analyse', $analyse->getId())
                    ->getQuery()
                    ->getSingleScalarResult();


    }
это мой Resquest 2

/**
     * @param Analyse $analyse
     * @param string $severity
     * @return mixed
     * @throws \Doctrine\ORM\NonUniqueResultException
     */
    public function countTypeError(Analyse $analyse, string $severity){

      return   $this->createQueryBuilder('a')
                    ->select('count(a)')
                    ->innerJoin('a.analyse', 'analyse')
                    ->innerJoin('a.rule', 'rule')
                    ->where('rule.severity = :error')
                    ->setParameter('error', $severity)
                    ->getQuery()
                    ->getSingleScalarResult();

    }

это мой запрос 3

 /**
     * @param Analyse $analyse
     * @return mixed
     * @throws \Doctrine\ORM\NonUniqueResultException
     */
    public function listTypeError(Analyse $analyse){

        return  $this->createQueryBuilder('a')
            ->select('rule.message')
            ->innerJoin('a.analyse', 'analyse')
            ->innerJoin('a.rule', 'rule')
            ->where('rule.severity = :error')
            ->setParameter('error', 'ERROR')
            ->getQuery()
            ->getResult();

    }
...