symfony - 我需要将 SQL 查询转换为 Doctrine Query Builder
问题描述
我有一个关系 ManyToMany ,我的数据库中的表是:
- 文章 : (id,tire,description,category,createAt)
- article_groupe_auteur: (article_id,groupe_auteur_id)
- groupe_auteur : (id,nom,prenom,adress,institution,city)
我需要检索作者所依赖的文章。
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()
}
解决方案
这是我如何让作者依赖于多对多关系的指定文章
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();
}
}
推荐阅读
- python - Pyspark 将所有数据帧值增加 1
- java - Webview 显示不需要的对话框
- list - 是否有用于将平面列表转换为嵌套列表的 Dart 实用程序?
- mysql - 异步功能等待不等待
- kube-apiserver - Kubernetes 集群重启后不运行
- reactjs - 用于 componentDidMount 依赖的 useEffect
- elasticsearch - 查询以比较来自两个不同索引的两列
- json - 使用 Spark Scala 将 Array[Byte] 转换为 JSON 格式
- php - 每次页面刷新时都不会检索来自 mysql 的数据
- python - 如何为我的烧瓶应用程序为在线用户创建 rq 工作人员?(使用redis服务器)