Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Session 会话前的laravel应用程序_Session_Laravel - Fatal编程技术网

Session 会话前的laravel应用程序

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'

我使用的是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' => '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')”),它可以在我第一次刷新页面时获得正确的会话值。这不是你的问题所暗示的-你的问题似乎是想知道如何使路由与路由之前的语言代码一起工作。