[英]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 路徑時,我收到一個錯誤Class Barryvdh\\Cors\\HandleCors does not exist
from vendor/laravel/framework/src/Illuminate/Container/Container.php
。
我認為這是因為中間件未在主應用程序中注冊。 我正在尋找如何使這個 3rd 方 nova 工具依賴項與主要的 Laravel 路由系統一起工作。
我已經成功地成功使用了其他 3rd 方軟件包。 但不是這個。 我可以確認該包存在並已加載到我的自定義工具自動加載文件中。
提前致謝。
我解決了這個問題。
在 boot 函數中,我們可以將中間件推送到 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');
}
希望這對其他人有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.