Как показать объект, на который указывает ссылка, с помощью 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
}
}
В моей схеме «Кейсы» уже есть ссылки на Бренд и Агентство. Итак, в основном, что мне нужно сделать, это следующее:
- Получите всю информацию из конкретного случая (это основной запрос)
- Добавить массив со ссылочным типом