我创建了三个查询构建查询,我尝试将它们组合成一个查询学说,但是我不知道如何实现 创建单个请求的目的是消除往返客户端服务器。请问我如何获得一个请求?
这是我的请求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();
}
/**
* @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();
}