【问题标题】:How to show Referenced Object with Groq如何使用 Groq 显示引用的对象
【发布时间】:2023-03-30 18:45:02
【问题描述】:

我有一个“成功案例”页面 (/cases),当我进入详细信息页面时,我会看到类似 /cases/some-slug 的内容。 p>

“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
              }
    }`;

知道如何构建我需要的方式吗? 基本上是:

  • 根据“案例”架构中的引用获取 caseBrand 对象。
  • 我将在个别案例页面中显示品牌名称和徽标。

非常感谢。

【问题讨论】:

    标签: next.js sanity groq


    【解决方案1】:

    我找到了答案,而且比我想象的要简单,只需在主查询中添加一个数组即可。

    
        *[_type == 'cases' && caseSlug.current == "amazon-prime-india"]
            {...,
           caseBrand -> {
             brandName,
            brandImage
            },
           caseAgency -> {
             agencyName,
            agencyLogo
            }
        
        }
    
    

    我的架构“案例”已经引用了品牌和代理商。所以基本上,我需要做的是:

    1. 从特定案例中获取所有信息(这是主要查询)
    2. 添加引用类型的数组

    【讨论】:

      猜你喜欢
      • 2022-01-25
      • 1970-01-01
      • 2011-03-22
      • 2021-11-28
      • 2016-06-09
      • 2017-08-08
      • 1970-01-01
      • 2022-11-13
      • 1970-01-01
      相关资源
      最近更新 更多