PHP Lighthouse Laravel — получение ресурсов через аутентифицированного пользователя

#php #laravel #graphql #laravel-lighthouse

#php #laravel #graphql #laravel-lighthouse

Вопрос:

Есть ли способ получить ресурсы (пример: сообщения) через аутентифицированного пользователя? Вот так:

 Auth::user()->posts()
 

Схема:

 type Query @guard(with: ["api"]) {
    me_posts: [Post!]! @auth
}
 

Комментарии:

1. Должно быть Auth::user()->posts или если есть вероятность, что пользователь не аутентифицирован, тогда лучше использовать с проверкой: optional(Auth::user())->posts поскольку свойство предоставляет вам коллекцию, а метод предоставляет вам конструктор запросов. Обратите внимание на ->posts vs ->posts() .

2. Вы также можете использовать область видимости, поэтому вам не понадобится пользовательский распознаватель полей.

3. Я бы предпочел использовать { me { posts {...} } } . И в схеме: {me: User @auth} , и type User { posts: [Post!]! @hasMany }

4. вы можете настроить распознаватель и return Auth::user()->posts() . вы также можете попробовать @whereAuth использовать отношение.