php - 如何在 symfony 学说中编写子查询
问题描述
我正在开发一个 symfony 项目,其后端是在学说和 api 平台框架中开发的。我需要获取一些详细信息并检查另一个表中的字段,这将是一个状态。我们使用此状态在前端处理某些事情。
我试过了:-
$qb = $this->createQueryBuilder('contact');
$qb2=$qb;
$sub_query = $qb2->select('field')
->from('OtherTable','g')
->where("'id= '".$personId."'")
->OrderBy('updated_at', 'DESC')
->setMaxResults(1)
->getQuery()
->getResult();
$qb->select("contact.id,
contact.title,
count (distinct person.id) as
number_of_contacts_with_email',(".$sub_query.") as status")
->leftjoin('contact.people', 'person')
->leftJoin('person.jobs', 'jobs')
->groupBy('contact.id, contact.title');
$query=$qb->getQuery();
$result = $qb->getQuery()->getArrayResult();
return $result;
执行查询时出现此错误。
[Semantical Error] line 0, col 59 near 'OtherTable g': Error: Class 'OtherTable' is not defined.
如何在这里写这个子查询?有什么解决方案吗?
解决方案
您应该简单地使用子查询的 DQL,例如:
// Don't take the query/result instances
$sub_query = $qb2->select('field')
->from('OtherTable','g')
->where("'id= '".$personId."'")
->OrderBy('updated_at', 'DESC')
->setMaxResults(1);
并使用
$qb->select("contact.id,
contact.title,
count (distinct person.id) as
number_of_contacts_with_email',(".$sub_query->getDQL().") as status")
->leftjoin('contact.people', 'person')
->leftJoin('person.jobs', 'jobs')
->groupBy('contact.id, contact.title');
希望这有帮助
推荐阅读
- python - Python 请求:SSL 验证
- python - 使 spyder 使用进程内内核
- ruby-on-rails - rails 如何从表单提交中生成对象?
- javascript - 为什么这个用于预检请求的中间件不起作用?
- python - 如何使用python(Matplotlib)绘制两个列表,其中一个列表包含年份,第二个包含负值和正值
- plotly-python - Unicode 转义字符似乎不再在 .html 保存的文件中工作,但通过 fig.show() 正确显示
- postgresql - 使用查询生成器进行查询以进行内部联接并在 typeORM 中使用条件进行选择
- javascript - 比较对象数组中的每个项目
- php - ApiPlatform 中不显示与 nullable 具有 ManyToOne 关系的属性
- javascript - javascript中数组的小问题,如何将数组与字符串进行比较并找到相同的元素?