Привет, я новичок в GraphQL и пытаюсь отсортировать данные на основе содержимого столбца. У меня есть конечная точка запроса, куда я могу отправить:
query {
user(count:20, firstName:"Foo") {
data {
name
region
birthDate
}
}
}
И в результате получается массив из 20 пользователей с именем Foo. Но я хочу заказать их до birthDate. Я уже столько всего перепробовал, но никак не могу разобраться. Я уже пробовал добавлять sort и orderBy после firstName, но всегда получаю такие ошибки, как:
{
"errors": [
{
"message": "Unknown argument \"sort\" on field \"user\" of type \"Query\".",
"extensions": {
"category": "graphql"
},
"locations": [
{
"line": 2,
"column": 31
}
]
}
]
}
Я использую Laravel Lighthouse в качестве wapper для GraphQL. Я удивлен, что не смог найти никакой информации о том, как это сделать.
Мой запрос:
type Query {
user(firstName: String @eq): [User!]! @paginate(type: "paginator" model: "App\\User")
}
type User {
id: ID!
firstName: String!
lastName: String!
birthDate: DateTime!
email: String!
created_at: DateTime!
updated_at: DateTime!
}






После поиска в течение еще часа я, наконец, нашел его. Я обновил свой файл graphql следующим образом:
type Query {
user(firstName: String @eq orderBy: [OrderByClause!] @orderBy): [User!]! @paginate(type: "paginator" model: "App\\User")
}
type User {
id: ID!
firstName: String!
lastName: String!
birthDate: DateTime!
email: String!
created_at: DateTime!
updated_at: DateTime!
}
input OrderByClause{
field: String!
order: SortOrder!
}
enum SortOrder {
ASC
DESC
}
Теперь использование этого запроса будет правильно сортировать их по дате рождения:
query {
user(count:20, firstName:"Foo", orderBy: [
{
field: "birthDate"
order: DESC
}
]) {
data {
name
region
birthDate
}
}
}
Спасибо! это спасло меня от еще многих часов гневных поисков. знак равно