#reactjs #graphql #apollo #strapi
Вопрос:
Я пытаюсь понять, как запросить «меньше»/»больше», используя GraphQL для бэкэнда strapi (используя React/Apollo). В принципе, я бы хотел, чтобы сумма бонуса была «не меньше», чем $min_bonus, и «не больше», чем $max_bonus…
Что было бы хорошим решением этой проблемы?
Мой Вопрос:
import { gql } from "@apollo/client";
const BONUSES_QUERY = gql`
query bonuses($min_bonus, $max_bonus, $welcome_bonus: Boolean, $deposit_bonus: Boolean, $monthly_bonus: Boolean, $weekly_bonus: Boolean, $slots_bonus: Boolean, $nodeposit_bonus: Boolean ) {
welcome_bonuses: bonuses(where:
{
welcome_bonus: $welcome_bonus
})
{
...BonusParts
}
deposit_bonuses: bonuses(where: { deposit_bonus: $deposit_bonus })
{
...BonusParts
}
monthly_bonuses: bonuses(where: { monthly_bonus: $monthly_bonus })
{
...BonusParts
}
weekly_bonuses: bonuses(where: { weekly_bonus: $weekly_bonus })
{
...BonusParts
}
slots_bonuses: bonuses(where: { slots_bonus: $slots_bonus })
{
...BonusParts
}
nodeposit_bonuses: bonuses(where: { nodeposit_bonus: $nodeposit_bonus })
{
...BonusParts
}
}
fragment BonusParts on Bonuses {
name
casino {
name
aff_link
logo {
url
}
}
slug
title
amount
code
min_deposit
value
wager
cashable
bonus_type {
name
}
}
`;
export default BONUSES_QUERY;
Ответ №1:
Вы говорите, что хотите больше и меньше, но в вашем описании указано, что вы хотите больше или равно и меньше или равно, поэтому мое предложение для этого. Вы можете заменить _gt
_gte
и тому подобное, если не хотите включать ограничение.
Вот соответствующая документация Strapi.
Вы можете добавлять _gte
и _lte
добавлять поля в свои where
предложения следующим образом.
import { gql } from "@apollo/client";
const BONUSES_QUERY = gql`
query bonuses($min_bonus, $max_bonus, $welcome_bonus: Boolean, $deposit_bonus: Boolean, $monthly_bonus: Boolean, $weekly_bonus: Boolean, $slots_bonus: Boolean, $nodeposit_bonus: Boolean ) {
welcome_bonuses: bonuses(where:
{
deposit_bonus_gt: $min_bonus,
deposit_bonus_lt: $max_bonus,
welcome_bonus: $welcome_bonus
})
{
...BonusParts
}
deposit_bonuses: bonuses(where:
{
deposit_bonus_gt: $min_bonus,
deposit_bonus_lt: $max_bonus,
deposit_bonus: $deposit_bonus
})
{
...BonusParts
}
...