如何解决TYPO3 DatabaseQueryProcessor:相同 UID 的多个输出
我正在尝试使用 DatabaseQueryProcessor 获取某些类别(在 pid 1 上),它几乎完美运行,但某些类别在变量的输出中显示多次。
(我使用的是无头错字3 10:https://github.com/TYPO3-Initiatives/headless)
brandcategories = JSON
brandcategories {
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
10 {
as = brandcategories
selectFields = sys_category.uid,sys_category.title
table = sys_category
pidInList = 1
where = parent=13
where.insertData = 1
join = sys_category_record_mm on sys_category_record_mm.uid_local =
sys_category.uid
}
}
}
这给了我以下输出:
[
{ "data": { "uid": 14,"title": "Barlow Tyrie","pid": 1,"t3ver_state": 0 } },{ "data": { "uid": 14,{ "data": { "uid": 16,"title": "Dedon",{ "data": { "uid": 17,"title": "Manutti",{ "data": { "uid": 19,"title": "Extremis","t3ver_state": 0 } }
]
如您所见,uid 14 显示了两次,以及 Manutti。 如果有人能告诉我如何过滤它,那就太好了,所以我只得到一次每个 ID。谢谢!
解决方法
通常,您可以使用两个不同的选项来限制这样的查询结果:
-
通过使用 mysql-Expression
DISTINCT
,我没有经验,但如果它可以在像selectFields = DISTINCT sys_category.uid,sys_category.title
这样的 TypoScript 中使用。
在 this page 上写不支持 DISTINCT,必须使用 ->groupBy() 代替。
我不确定这是否也适用于您的 TypoScript 问题。
-
通过在 TypoScript 中使用
groupBy
对结果进行分组:groupBy = sys_category.uid
关于这两种方法的一般说明可以在here找到,说明只与MySQL有关,与TypoScript无关。
此外,您可以向联接添加更多约束,以便不需要上述选项。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。