2016-09-23 14 views
1

私のlaravel 5.2ルートでオプションのlang引数をキャッチする一般的なルートを作成します。laravel 5.2の任意の引数を捕らえる方法route

現在、私は「/ LANG/[LANGコード]」あなたは、オプションでURLをpreceed場合、このルートだから、

//language switcher 
Route::get('lang/{lang}/{suffix}', function($lang, $suffix) { 
    Session::set('applocale', $lang); 
    return Redirect($suffix); 
}); 

でそれを行うルータがapplocale変更し、リソースにリダイレクトします。

答えて

0

は、いつものように言う。..

//language switcher 
Route::get('(es|ca|en)/{suffix}', function($lang, $suffix) { 
    Session::set('applocale', $lang); 
    return Redirect($suffix); 
}); 

しかし、どのように知っていない:RTMを

は、しかし、私は、正規表現、いろいろ書い等ときれいな方法にしたいと思います!

ソリューション:

// generic language switcher 
// catch any route preceded with "es" ,"ca" or "en", set the applocale and 
// redirect to suffix route 
Route::get('{lang}/{suffix}', function($lang, $suffix) { 
    Session::set('applocale', $lang); 
    return Redirect($suffix); 
}) 
->where(['lang' => '(es|ca|en)', 'suffix' => '(.*)']); 

https://laravel.com/docs/5.2/routing#parameters-regular-expression-constraints

関連する問題