Laravel и Lighthouse, он всегда читает схему dafault
Я следую учебному пособию на веб-сайте Lighthouse для мастер-версии (4.1).
https://lighthouse-php.com/4.1/getting-started/tutorial.html
Я делаю свежую установку Laravel 5.8, затем выполняю команды, написанные в руководстве (рядом с npm install
)
composer require nuwave/lighthouse mll-lab/laravel-graphql-playground
php artisan vendor:publish --provider="Nuwave\Lighthouse\LighthouseServiceProvider"
php artisan vendor:publish --provider="MLL\GraphQLPlayground\GraphQLPlaygroundServiceProvider"
после этого /graphql/schema.graphql
файл создается (под корнем проекта, а не под routes
папка как и с предыдущими версиями).
Теперь я заполняю базу данных некоторыми данными, а затем копирую / вставляю схему со страницы учебника в опубликованную схему, запускаю сервер и затем получаю доступ к игровой площадке, которая показывает правильный URL-адрес, куда отправлять запросы. http://127.0.0.1:8000/graphql
,
Нажав на Schema
На вкладке я всегда вижу схему по умолчанию, а не опубликованную в /graphql/schema.graphql
и, конечно, запросы к ресурсам, отличным от пользователей, не выполняются с такой ошибкой, как Cannot query field "posts" on type "Query".
, Я уже попытался перезагрузить сервер и обновить страницу Playground.
В config/lighthouse.php
файл схемы прописан по пути base_path('graphql/schema.graphql')
который выглядит правильно.
Почему Playground всегда показывает схему по умолчанию, а не опубликованную и отредактированную?
Я использую PHP 7.2.14 и Lighthouse требует PHP>7.1
1 ответ
Я думал, что проблема связана с кешированием. Я пытался добавить LIGHTHOUSE_CACHE_ENABLE=false
в файл laravel .env и перезапустите сервер, затем обновите страницу игровой площадки. Я перепроверяю схему, и она обновляется.
Я надеюсь, что это полезно.