Как добавить промежуточное программное обеспечение CORS к маршрутам, определенным в пользовательском инструменте Laravel Nova? - PullRequest
0 голосов
/ 13 февраля 2019

Я создаю безголовый cms, используя laravel nova и vuejs.

У меня возникла проблема с попыткой зарегистрировать отличное промежуточное программное обеспечение CORS из https://github.com/barryvdh/laravel-cors. Я могу получить это с помощьюОсновное приложение, но я хотел бы добавить это в качестве зависимости от моего пользовательского инструмента Nova.

Я просто не могу понять, как это сделать.

Я пытался добавить промежуточное ПО в функцию маршрутов, сгенерированную командой artisan nova:tool.

/**
 * Register the tool's routes.
 *
 * @return void
 */
protected function routes()
{
    if ($this->app->routesAreCached()) {
        return;
    }

    Route::middleware(\Barryvdh\Cors\HandleCors::class)
       ->prefix('api/meta-blog')
       ->group(__DIR__.'/../routes/api.php');
}

Но я получаю ошибку Class Barryvdh\Cors\HandleCors does not exist от vendor/laravel/framework/src/Illuminate/Container/Container.php при попадании на любой из путей API.

Я думаю, это потому, что промежуточное программное обеспечение не зарегистрировано в основном приложении.Я пытаюсь выяснить, как заставить эту независимую инструментальную зависимость nova работать с основной системой маршрутизации laravel.

Я успешно использовал другие сторонние пакеты с успехом.Но не этот.Я могу подтвердить, что пакет существует и был загружен в мой файл автозагрузки пользовательских инструментов.

Заранее спасибо.

1 Ответ

0 голосов
/ 13 февраля 2019

Я решил это.

В функции загрузки мы можем вставить промежуточное ПО в группу API.

/**
 * Bootstrap any application services.
 *
 * @return void
 */
public function boot()
{
    ...

    $router = $this->app['router'];
    $router->pushMiddlewareToGroup('api', Barryvdh\Cors\HandleCors::class);
}

Затем в функции маршрутов

/**
 * Register the tool's routes.
 *
 * @return void
 */
protected function routes()
{
    if ($this->app->routesAreCached()) {
        return;
    }

    Route::prefix('api/meta-blog')
        ->group(__DIR__.'/../routes/api.php');
}

Надеюсь, это поможет кому-то еще.

...