#php #laravel #graphql #laravel-lighthouse
#php #laravel #graphql #laravel-lighthouse
Вопрос:
При настройке этого пакета в руководстве lighthouse я получил эту ошибку, что я могу сделать сейчас?
https://github.com/mll-lab/laravel-graphql-playground
Композитор
"require": {
"php": "^7.1.3",
"fideloper/proxy": "^4.0",
"laravel/framework": "5.7.*",
"laravel/tinker": "^1.0",
"mll-lab/laravel-graphql-playground": "^1.0",
"nuwave/lighthouse": "^2.6"
},
Ошибка
In Router.php line 363:
Argument 1 passed to IlluminateRoutingRouter::group() must be of the type array, string giv en,
called in D:Laravellighthouse-tutorialvendorlaravelframeworksrcIlluminateSupport FacadesFacade.php on line 223
--
In Router.php line 363:
Argument 1 passed to IlluminateRoutingRouter::group() must be of the type
array, string given, called in D:Laravellighthouse-tutorialvendorlaravelframeworksrcIlluminateSupportFacadesFacade.php on line 223
Script @php artisan package:discover --ansi handling the post-autoload-dump event returned with er ror code 1
--
Обновить
Файл конфигурации
<?php
return [
// Route for the frontend
'route' => 'graphql-playground',
// Which middleware to apply, if any
'middleware' => [
// 'web',
],
// Route for the GraphQL endpoint
'endpoint' => 'graphql',
// Control if the playground is accessible at all
// This allows you to disable it completely in production
'enabled' => env('GRAPHQL_PLAYGROUND_ENABLED', true),
];
Проблема здесь, когда я удаляю это, работает 'route' => 'graphql-playground',
Комментарии:
1. Пожалуйста, покажите ваш файл маршрутов, если это возможно.
2. Это чистый проект, только в моем веб-маршрутизаторе есть
url ('/')
3.
Route::get('/', function () { return view('welcome'); });
4. Я подозреваю github.com/mll-lab/laravel-graphql-playground/issues/24 может быть в игре
Ответ №1:
Я обнаружил, что в GraphQLPlaygroundServiceProvider.php
они используют route group:
Route::group(
config('graphql-playground.route'),
...
но для группы маршрутов требуется параметр array, поэтому я решил проблему, изменив файл конфигурации с:
'route' => 'graphql-playground',
к маршруту в виде массива:
'route' => ['graphql-playground'],
Это решило проблему для меня.
Комментарии:
1. Пожалуйста, добавьте некоторые пояснения к вашему коду, чтобы другие могли извлечь из него уроки
Ответ №2:
Проблема объяснена:
Это произошло в репозитории lighthouse-tutorial, когда я попытался следовать дальше, я обнаружил, что это было потому, что файл конфигурации возвращает строку, в которой ожидается массив.
ИСПРАВИТЬ
Перейдите к config/graphql-playground.php репозитория lighthouse-tutorial и изменить 'route' => 'graphql-playground'
на 'route' => ['graphql-playground']
Затем запустите свой composer require nuwave/lighthouse mll-lab/laravel-graphql-playground
снова.
Это исправило это для меня.