Session 会话前的laravel应用程序
我使用的是php laravel framework,我想按会话设置路由组的前缀:Session 会话前的laravel应用程序,session,laravel,Session,Laravel,我使用的是php laravel framework,我想按会话设置路由组的前缀: App::before(function(){ Session::put('lang', Request::segment(1)); }); Route::group(array('prefix' => Session::get('lang')), function(){ //home Route::get('/', array('as' => 'home', 'uses'
App::before(function(){
Session::put('lang', Request::segment(1));
});
Route::group(array('prefix' => Session::get('lang')), function(){
//home
Route::get('/', array('as' => 'home', 'uses' => 'IndexController@index'));
//login
Route::get('/login', array('as' => 'login', 'uses' => 'UserController@login'));
Route::post('/do-login', array('as' => 'do_login', 'uses' => 'UserController@doLogin'));
Route::get('/logout', array('as' => 'logout', 'uses' => 'UserController@logout'));
});
登录的默认url为:localhost:9090/en/login。但如果我将“en”更改为“zh”(或其他内容),应用程序将抛出“Symfony\Component\HttpKernel\Exception\NotFoundHttpException”异常。
然后刷新更改后的url(localhost:9090/zh/login),页面显示正确
有什么问题吗?似乎您真正需要的是一种将URL的语言部分从路由中完全排除的方法,这样无论选择何种语言,您的路由都会表现相同-这是正确的吗?实际上,我很困惑为什么无法获得会话值。奇怪的是,如果我在“App::before”closuer函数中运行“die(Session::get('lang')”),它可以在我第一次刷新页面时获得正确的会话值。这不是你的问题所暗示的-你的问题似乎是想知道如何使路由与路由之前的语言代码一起工作。