我正在使用laravel nova和vuejs建造一个无头的cms。
我在试图从https://github.com/barryvdh/laravel-cors注册优秀的CORS中间件时遇到了问题。我可以从主应用程序中获得此功能,但我想将此作为依赖项添加到我的自定义nova工具中。
我只是无法弄清楚如何做到这一点。
我尝试在artisan nova:tool
命令生成的routes函数中添加中间件。
/**
* 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路径时,我从Class Barryvdh\Cors\HandleCors does not exist
得到一个错误vendor/laravel/framework/src/Illuminate/Container/Container.php
。
我认为这是因为中间件未在主应用程序中注册。我正在寻找如何使这个第三方新星工具依赖与主要的laravel路由系统一起工作。
我已成功使用其他第三方软件包。但不是这个。我可以确认该包存在并已加载到我的自定义工具自动加载文件中。
提前致谢。
我解决了这个问题
在启动功能中,我们可以将中间件推送到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');
}
希望这有助于其他人。