#php #laravel #graphql #apollo-client #laravel-lighthouse
#php #laravel #graphql #apollo-клиент #laravel-lighthouse
Вопрос:
Я создал запрос GraphQL, который получает сложные условия where, но в клиенте Apollo GraphQL для iOS нет способа изменить запрос после компиляции проекта. Клиент Apollo GraphQL для iOS дает возможность изменять определенные переменные в запросе, но не сам запрос.
Мой оригинальный запрос Lighthouse GraphQL выглядит следующим образом;
query ($first:Int, $page:Int) {
my_listings(
where: {
AND: [
{ column: NET_AREA, operator: GTE, value: 200 }
]
}
orderBy: [
{ column: ID, order: ASC }
]
first: $first
page: $page
) {
data {
...listingFields
}
paginatorInfo {
currentPage
lastPage
}
}
}
Измененный запрос Lighthouse GraphQL выглядит так, только добавлена переменная $conditions, которая является MyListingsWhereWhereConditions
типом.
query($first: Int, $page: Int, $conditions:MyListingsWhereWhereConditions) {
my_listings(
where: $conditions
orderBy: [{ column: ID, order: ASC }]
first: $first
page: $page
) {
data {
...listingFields
}
paginatorInfo {
currentPage
lastPage
}
}
}
Когда я ввожу следующие переменные во второй запрос, сервер Lighthouse возвращает мне следующее сообщение
{
"first": 1,
"page": 1,
"conditions": {"AND": {"column": "PRICE", "operator": "LTE","value": "190"}}
}
сообщение об ошибке
Variable "$conditions" got invalid value {"AND":{"column":"PRICE","operator":"LTE","value":"190"}}; Expected type MyListingsWhereWhereConditions to be an object at value.AND.column.
Есть ли способ задать эти условия в переменной? Без этого я не мог найти способ изменить условие where на клиенте iOS.
Комментарии:
1. это не ошибка PHP, которая является неправильным запросом…
2. Может быть, опубликовать полный SDL типа ввода MyListingsWhereWhereConditions? Похоже, он ожидает, что значение для столбца будет объектом, а не перечислением.
3. И должен быть массив объектов
Ответ №1:
«И» должны содержать массив объектов, а не объект.
"conditions": {"AND": [{"column": "PRICE", "operator": "LTE","value": "190"}}]