laravel - 如何有条件地在 Kernel.php 中加载 Laravel 中间件?
问题描述
我需要为本地环境而不是生产环境加载中间件。它当前定义在$middleware
数组的 app/Http/Kernel.php 中。
是否可以检查那里的环境,然后使用三元表达式?还是环境变量还没有加载?使用 Laravel 5.8
解决方案
kernel.php
只是想法,您可以像下面这样设置中间件组
内核.php
protected $middlewareGroups = [
'local' => [
// \App\Http\Middleware\EncryptCookies::class,
// \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
// \Illuminate\Session\Middleware\StartSession::class,
// \Illuminate\Session\Middleware\AuthenticateSession::class,
// \Illuminate\View\Middleware\ShareErrorsFromSession::class,
// \App\Http\Middleware\VerifyCsrfToken::class,
// \Illuminate\Routing\Middleware\SubstituteBindings::class,
],
'dev' => [
...
],
];
RouteServiceProvider.php
现在您可以在 RouteServiceProvider 中设置本地中间件。
public function map()
{
if ($this->app->environment('local)) {
Route::middleware('local')
->namespace($this->namespace)
->group(base_path('routes/web.php'));
}
}
未测试
推荐阅读
- javascript - 如何使用 Caspio 数据页在 Angular 8 应用程序中嵌入/调用外部 javascript
- jquery - 在 Rails 视图中使用 jQuery 隐藏
- kubernetes - papertrail 的 fluentd 守护程序集容器无法在 kubernetes 集群中启动
- mysql - SQL 查询查找每个 user_id 的最大 id
- python - TypeError:仅对 DatetimeIndex、TimedeltaIndex 或 PeriodIndex 有效,但获得了“RangeIndex”实例
- mysql - 对值求和,直到条件的下一次出现
- mono - 为什么在 My Notebook D Drive 中使用 System64 和 mono 和 system?
- python - 如何在 Django 上存储散列密码以及如何与另一个散列密码进行比较?
- api - 在 API 请求中使用 Dialogflow 获取 Code 400
- flutter - Flutter – MultiBlocProvider 不实例化 BLoC