php - ApiPlatform : CustomSearchFilter : 学说为 andWhere 生成子请求
问题描述
我在 ApiPlatform 中创建了一个 CustomSearchFilter。
查询中只有一个过滤器。例如,我只把这个放在过滤器中:
$queryBuilder->leftJoin($rootAlias . ".contracts", "c");
$queryBuilder->leftJoin( "c.payments", "p");
$queryBuilder->andWhere( "p.id = 140");
它工作正常,但探查器中的学说生成的查询如下。
SELECT
l0_.id AS id_0,
l0_.company AS company_1,
l0_.name AS name_2,
l0_.name2 AS name2_3,
FROM
landlord l0_
LEFT JOIN contract l1_ ON l0_.id = l1_.customer_id
LEFT JOIN payment l2_ ON l1_.id = l2_.contract_id
WHERE
l0_.id IN (
SELECT
l3_.id
FROM
landlord l3_
LEFT JOIN contract l4_ ON l3_.id = l4_.customer_id
LEFT JOIN payment l5_ ON l4_.id = l5_.contract_id
WHERE
l5_.id = 140
)
ORDER BY
l0_.id ASC
如果没有子查询,生成的查询应该会简单得多。
当我删除两个 leftJoin 或 andWhere 之一时,就没有更多的子查询了。
你知道我做错了什么吗?
谢谢
解决方案
推荐阅读
- firebase - 限制特定用户从收集中获取数据的频率
- node.js - Azure Blob 服务 REST API - 错误:读取 ECONNRESET
- c++ - 重命名变量会产生不同的结果
- flutter - 如何在垂直列表视图中添加水平滚动网格视图?
- flutter - 将文本添加到图标按钮颤动
- go - protoc 生成的 grpc 文件和网关文件最终在不同的路径中?
- java - Firebase Auth.signOut 不断崩溃 Activity
- javascript - 如何使用javascript根据其数量计算选择选项的价格
- ruby-on-rails - 如何将 JSON 响应转换为哈希,并提取特定的键和值
- phpspreadsheet - phpspreadsheet 将单元格值检索为无格式文本