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でこれを行うにはどうすればよいですか?