Как показать объект, на который указывает ссылка, с помощью Groq

У меня есть страница «Успешные случаи» ( / cases ), где, когда я перехожу на страницу с подробностями, у меня появляется что-то вроде / cases / some-slug .

Схема «case» ссылается на бренд, например:

      
    {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 на основе ссылки из схемы « case ».
  • Это я покажу фирменное наименование и логотип на странице индивидуального случая.

Большое спасибо.

1 ответ

Я нашел ответ, и он проще, чем я думал, и это можно сделать, просто добавив массив к основному запросу.

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

В моей схеме «Кейсы» уже есть ссылки на Бренд и Агентство. Итак, в основном, что мне нужно сделать, это следующее:

  1. Получите всю информацию из конкретного случая (это основной запрос)
  2. Добавить массив со ссылочным типом
Другие вопросы по тегам