如何将 CORS 中间件添加到自定义 Laravel Nova 工具中定义的路由?
How can I add CORS middleware to routes defined in custom Laravel Nova tool?
我正在使用 laravel nova 和 vuejs 构建无头 cms。
我在尝试从 https://github.com/barryvdh/laravel-cors 注册出色的 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');
}
但是当我点击任何 api 路径时,我从 vendor/laravel/framework/src/Illuminate/Container/Container.php
收到错误 Class Barryvdh\Cors\HandleCors does not exist
。
我认为这是因为中间件没有在主应用程序中注册。我正在寻找如何使这个第 3 方 nova 工具依赖项与主要 laravel 路由系统一起工作。
我已经成功地使用了其他 3rd 方包。但不是这个。我可以确认该包存在并已加载到我的自定义工具自动加载文件中。
提前致谢。
我解决了这个问题。
在启动函数中我们可以推送一个中间件到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');
}
希望这对其他人有帮助。
我正在使用 laravel nova 和 vuejs 构建无头 cms。
我在尝试从 https://github.com/barryvdh/laravel-cors 注册出色的 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');
}
但是当我点击任何 api 路径时,我从 vendor/laravel/framework/src/Illuminate/Container/Container.php
收到错误 Class Barryvdh\Cors\HandleCors does not exist
。
我认为这是因为中间件没有在主应用程序中注册。我正在寻找如何使这个第 3 方 nova 工具依赖项与主要 laravel 路由系统一起工作。
我已经成功地使用了其他 3rd 方包。但不是这个。我可以确认该包存在并已加载到我的自定义工具自动加载文件中。
提前致谢。
我解决了这个问题。
在启动函数中我们可以推送一个中间件到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');
}
希望这对其他人有帮助。