2016-09-23 3 views
1

내 laravel 5.2 경로에 선택적 lang 인수를 잡기위한 일반적인 경로를 만들고 싶습니다. 당신이 해당 AppLocale 변경하고 리소스 리디렉션 옵션 "/ LANG/[LANG 코드]"라우터와 함께 URL을보다 선행하는 경우laravel에서 선택적 인수를 잡는 방법 5.2 route

현재 나는

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

그래서이 경로와 함께 할.

답변

0

는 언제나 말을 ..

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

그러나 방법을 모른다 : RTM을

그러나 나는 정규식가 someting 등으로 깨끗한 방법으로하고 싶습니다!

솔루션 :

// 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

관련 문제