4

Laravel 4.2では、URLに基​​づいてEloquentモデルとテーブルを設定するフィルターの前にこれがありました(admin.example.comとexample.com)

これが私のフィルターコードです:

App::before(function($request)
{       
  // Check if we are using the admin URL
  $host = $request->getHost();
  $parts = explode('.', $host);
  if ($parts[0] == 'admin')
  {
    // Set the config for user info (not sponsor)
    Config::set('auth.model', 'Admin');
    Config::set('auth.table', 'admins');
  }
});

laravel 5でこのためのミドルウェアを作成しようとしましたが、次のコードがあります:

class AdminOrSponsor implements Middleware {

  public function handle($request, Closure $next)
  {   
    $host = $request->getHost();
    $parts = explode('.', $host);
    if ($parts[0] == 'admin'){
        Config::set('auth.model', 'Admin');
        Config::set('auth.table', 'admins');
    }

    return $next($request);
  }

}

私の routes.php ファイルでは、次のように auth.model 設定に基づいて呼び出されるコントローラーを設定しています。

Route::get('/auth/login', Config::get('auth.model') . 'Controller@getLogin');
Route::post('/auth/login', Config::get('auth.model') . 'Controller@postLogin');
Route::get('/auth/logout', Config::get('auth.model') . 'Controller@getLogout');

私が見つけたのは、ミドルウェアの前にルートがすべて読み取られるため、Config::set() を介して行おうとしている変更が行われていないことです。auth.php 構成ファイルに設定されている値のみを取得しています。

Laravel 5でこれを行うにはどうすればよいですか?

4

1 に答える 1