【发布时间】:2017-05-23 18:08:56
【问题描述】:
我需要检查会话变量以在 laravel 中设置配置项。不过,我需要它在 auth 中间件之前运行。我已经尝试了各种配置以使其正常工作,但无论如何,auth 在我设置数据库之前运行,因此无法找到用户。
这是我目前所拥有的:
内核.php
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
\App\Http\Middleware\CheckTenant::class,
],
检查租户:
public function handle($request, Closure $next)
{
if(session()->has('database')){
//set db in config for eloquent
Config::set('database.connections.mysql.database', session('database'));
}
$response = $next($request);
return $response;
}
我的路线:
Route::group(['middleware' => 'auth'], function () {
// All my routes that needs a logged in user
Route::get('/dashboard', function () {
return view('jobs.index');
});
});
所以基本上我只需要在每个请求检查身份验证之前设置一个配置项。
任何帮助将不胜感激。
【问题讨论】:
标签: php laravel session laravel-middleware