【问题标题】:JOIN DQL SYMFONY加入 DQL SYMFONY
【发布时间】:2020-02-16 03:55:41
【问题描述】:

我想为父母计算多少个孩子

 class abonnementRepository extends \Doctrine\ORM\EntityRepository
{
    public function SumEnfantDQL($id)
    {
        $entityManager = $this->getEntityManager();
        $query = $entityManager->createQueryBuilder();
        $query->select('sum(o.id) AS somme');
        $query->from('AppBundle:enfant', 'o');
        $query->join('AppBundle:User','p')->where('p.id = :id');
        $rez = $query->getQuery()->getResult();
        return $rez;
    }
}

实体enfant有matricul_prt,实体用户有enfant_id,$id参数是父id 我不知道它如何与 join 或 innerJoin 一起工作。所以我想做的是

SELECT SUM(*)
FROM enfant e
WHERE e.matricul_prt = $id; 

非常感谢

【问题讨论】:

标签: symfony dql


【解决方案1】:

首先,您应该为 AppBundle:enfant 创建一个 Repository 类,这个 repo 看起来不像是为“enfant”创建的。 接下来该方法应如下所示,但前提是“enfant”和“User”之间存在有效关联。

public function SumEnfant(int $id): int
{
    return $this->createQueryBuilder('e') <- alias for 'enfant'
        ->select('sum(e.id)') 
        ->join('e.user', 'u') <- join by entity property
        ->where('u.id = :id') <- condition for associated entity
        ->setParameter('id' , $id) <- parameter
        ->getQuery()
        ->getSingleScalarResult();
}

试试这个,再次阅读文档并根据您的情况进行修改。

【讨论】:

  • 非常感谢它的工作,但数据以数组格式返回,我想在我的视图中呈现返回结果我应该做什么非常感谢你的帮助
猜你喜欢
  • 2014-02-08
  • 1970-01-01
  • 1970-01-01
  • 2011-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多