问题描述
我有一个“成功案例”页面 (/cases),当我进入详细信息页面时,我会看到类似 /cases/some-slug 的内容。 >
“cases”模式引用了一个品牌,如下所示:
{title: 'Case Brand',name: 'caseBrand',type: 'reference',to: [
{type: 'brands'}
]
},
在我找到的所有示例中,我必须将品牌与案例联系起来。但如果我将每个案例与特定品牌联系起来会更有用。 (另一种方式我必须附加到品牌,多个案例)。
因此,下面的示例我采用了相反的方式(对于我构建的结构来说不方便):
const getCaseBrand = `*[_type=="cases" && caseSlug.current == "${slug}" ]{
_id,caseSlug,"brand": *[_type =="brands" && references(^._id)]{
_id,brandName,brandDescription,brandlogo
}
}`;
知道如何按照我需要的方式构建吗? 基本上是:
非常感谢。
解决方法
我找到了答案,而且比我想象的要简单,只需在主查询中添加一个数组即可。
*[_type == 'cases' && caseSlug.current == "amazon-prime-india"]
{...,caseBrand -> {
brandName,brandImage
},caseAgency -> {
agencyName,agencyLogo
}
}
我的架构“案例”已经引用了品牌和代理商。所以基本上,我需要做的是以下内容:
- 从特定案例中获取所有信息(这是主要查询)
- 添加具有引用类型的数组