2017-01-09 14 views
1

Мне нужно проверить переменную сеанса, чтобы установить элемент конфигурации в laravel. Мне нужно, чтобы это выполнялось до промежуточного ПО auth. Я пробовал всевозможные конфигурации, чтобы заставить его работать, но независимо от того, что, auth работает до того, как я установил базу данных, чтобы он не смог найти пользователя.Проверьте переменную сеанса перед промежуточным программным обеспечением laravel auth

Это то, что я до сих пор:

Kernal.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, 
    ], 

CheckTenant:

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'); 
    }); 

}); 

Поэтому в основном я просто нужен установить элемент конфигурации в e до запроса проверки подлинности.

Любая помощь была бы действительно оценена.

ответ

0

Проблема заключается в том, что вы пытаетесь сохранить данные в config after the request is handled by the application (см. До & После раздела Middleware). Настройка конфигурации после запроса была обработана приложением, и это не имеет никакого смысла.

Синтаксис должен быть:

public function handle($request, Closure $next) 
{ 
    if (session()->has('database')) { 
     Config::set('database.connections.mysql.database', session('database')); 
    } 

    $response = $next($request); 

    return $response; 

} 
+0

промежуточное Auth все еще, кажется, работает до этого? – jhodgson4