首页 > 解决方案 > 我需要将 SQL 查询转换为 Doctrine Query Builder

问题描述

我有一个关系 ManyToMany ,我的数据库中的表是:

我需要检索作者所依赖的文章。

Sql 查询

use RevueProject;
 select nom_auteur,prenom_auteur,nom_ins,adresse_ins from groupe_auteur ga
     INNER JOIN
                article_groupe_auteur aga on groupe_auteur.id = aga.groupe_auteur_id
     INNER JOIN article a on aga.article_id = a.id
                where  a.id=21;

dql查询

 public function SelectArticleAuthors2(int $Id){

  return $this->createQueryBuilder('GA');
              ->innerJoin('article_groupe_auteur','aga', Join::WITH , 'aga = ga.groupe_auteur_id')
              ->innerJoin('article','a',Join::WITH , 'a = aga.article_id')
              ->where('aga.article_id = : Id')
              ->setParameter('Id', $Id);
              ->getQuery()->getResult()
}

标签: symfonysymfony4query-builderdql

解决方案


这是我如何让作者依赖于多对多关系的指定文章

class GroupeAuteurRepository extends ServiceEntityRepository
{
    /**
     * @return mixed
     */
    public function SelectArticleAuthors(int $id)
    {
        // ga (alias) : GroupeAuteur Entity 
        return $this->createQueryBuilder('ga') 
                    // articles (collection)
                    ->innerJoin('ga.articles','a','WITH','a.id=:id') 
                    ->setParameter('id', $id)
                    ->getQuery()->getResult();
    }
}


推荐阅读