#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
использовать отношение.