2017-12-05 8 views
0

example.com とexample.com/version2の2つのバージョンがあります。 web.phpでLaravel 5のベースURLダイナミクスを設定しました

私はバージョン2サイトのデータベース接続を設定しWebConfigのミドルウェアで

Route::group(['middleware'=>['webconfig'],'prefix'=>'version2'], function(){ 
     //Routes for version2 site 
    }); 
// Routes for main site 

を持っています。どちらもうまくいきますが、私はversion2サイトのベースURLも設定しています。これurl()方法を働いていないことはここではexample.com を返す私のWebConfigミドルウェアは、どのように私はdynamicalyベースURLを設定することができ

public function handle($request, Closure $next) 
    { 
     \Config::set('database.default', 'mysql_us'); 
     \Config::set('app.url', url('version2')); 
     return $next($request); 
    } 

です。同じホスティングで展開あなたの2バージョン以降のご.envファイルで

+0

URLを変更する必要はありません。それ以外の場合、グループは 'version2'を' version2/version2'に変更し、ループに詰まる可能性があります。 –

+0

'app.url'はコンソールで使用され、ウェブリクエストでは使用されません – lagbox

答えて

0

とあなたは自分の新しいバージョンの接頭辞「version2」を追加します。どうしてあなたのセグメント(1)をチェックしたミドルウェアをバージョン2であるか作成していないのであれば、それが使用する正しいデータベースを設定してください。ユーザーがversion2セグメントにいるときに他のデータベースにリダイレクトしたいと思っています。

あなただけの私は、これはあなたの問題のお手伝いを願っています

if(Str::lower($request->segment(1) == "version2"){ 
    config()->set('database.default', 'mysql_us'); 
}else{ 
    //your another config. 
} 

、あなたのミドルウェアでは、このようなソリューションを使用することができます。この場合

関連する問題