【问题标题】:inner join symfony doctrine内连接 symfony 学说
【发布时间】:2017-11-05 16:17:23
【问题描述】:

目前我有这个 DQL 查询,我想用 QueryBuilder 重写它,但是因为我玩了几个实体,所以它很复杂,我看过一些例子,但我不明白多个实体与我想要的代码有什么关系改写如下:

Public function getDepartamentoEmpresaEmpleado($numdoc){
    // Muestra todos los departamentos de la empresa a la cual pertenece el empleado logeado
    $em = $this->getEntityManager();
    $empresa_repo = $em->getRepository('BackendBundle:Empresa');
    $idempresa = $empresa_repo->getVerIdempresa($numdoc);
    $dql = "SELECT a FROM BackendBundle:DepartamentoRrhh a 
                INNER JOIN BackendBundle:CentroCosto        b WITH a.idcentroCosto      = b.idcentroCosto
                INNER JOIN BackendBundle:Empresa            c WITH b.idempresa          = c.idempresa
                WHERE c.idempresa = :idempresa";
    $query = $em->createQuery($dql)->setParameter('idempresa', $idempresa);
    $Departamentos = $query->getResult();
    return $Departamentos;
}

【问题讨论】:

    标签: symfony doctrine


    【解决方案1】:

    试试这个,

    将此添加到 DepartamentoRrhh 实体的存储库中

    public function getDepartamentoEmpresaEmpleado($numdoc){
    
        $em = $this->getEntityManager();
        $idempresa = $em->getRepository('BackendBundle:Empresa')->getVerIdempresa($numdoc);
    
        $query = $this->createQueryBuilder('a')
            ->innerJoin('a.idcentroCosto', 'b')
            ->innerJoin('b.idempresa', 'c')
            ->where('c.idempresa = :idempresa')
            ->setParameter('idempresa', $idempresa)
            ->getQuery();
    
        $Departamentos = $query->getResult();
        return $Departamentos;
    }
    

    希望这会奏效。

    【讨论】:

    • 非常感谢
    【解决方案2】:

    这应该可行

    $Departamentos = $empresa_repo->createQueryBuilder('a')
    ->innerJoin('a.idcentroCosto', 'b')
    ->innerJoin('b.idempresa', 'c')
    ->andWhere('c.idempresa = :idempresa')
    ->setParameter('idempresa', $idempresa)
    ->getQuery()
    ->getResult();
    

    innerJoin 不需要指定Entity,因为 通过实体映射,学说已经知道了。

    【讨论】:

      猜你喜欢
      • 2013-03-01
      • 2014-12-21
      • 2012-06-11
      • 2011-04-20
      • 1970-01-01
      • 2016-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多