2017-10-26 8 views
0

私はルートサービスプロバイダーと多くの仕事をしておらず、Laravel 5.4周辺でいくつかの変更があったようです。Laravelでサービスプロバイダーをルーティングするためにサブドメインを渡して、マルチテナントに使用できるようにします

基本的にルートサービスプロバイダのブート機能を使用してサブドメインを取得したいので、サブデータベースの設定と再接続を設定するためにメインデータベースに問い合わせることができます。私はこれがミドルウェアを介して行われる可能性があると理解していますが、サービスプロバイダーを通じてそれを実行したいと考えています。

ルート

Route::group(['domain' => '{account}.prop.dev'], function() { 
    Route::get('/login', function() { 
     return 'login'; 
    }); 
}); 

私はそれがダンプルート・サービス・プロバイダーにダンプが、私は実行するように見えるdoesntの機能を機能させるとあれば、私が管理していない場所の上とで何か問題を参照してくださいカントサブドメインを取得します。

あり

$router-> 

を使用して多くの情報のようですが、

Route:: 

次のように私のルートサービスプロバイダの試みがある使用して情報を見つけるのに苦労しています

public function boot() 
{ 

parent::boot(); 

    Route::pattern('domain', '[a-z0-9.]+'); 

    Route::bind('domain', function ($value) { 
     $domain= Customer::whereSubdomain($value)->first(); 
     if ($domain) { 

      return $domain; 
     } 
     throw new Exception('error message'); 
    }); 

} 

をどんな助けも素晴らしいだろう。

答えて

0

あなたは、私は、サービスプロバイダに渡された要求があると思ういけない

request()->route()->parameter('domain'); 
+0

を使用してドメインを取得することができますか? –

+0

リクエストヘルパーは、現在のリクエストを取得します(おそらくprovider :: registerメソッドを除く)。また、私が信じるプロバイダの '$ this-> app-> request-> route() - >パラメータ( 'domain')から取得することもできます。 –

関連する問題