它是一款laravel 5.2 app。我有这两个功能:
public function page1()
{
Session::put('test', '1');
$value = Session::get('test');
echo 'test: '.$value;
}
public function page2()
{
$value = Session::get('test');
echo 'test: '.$value;
}
我先去localhost / page1。我可以看到页面打印出来:
test: 1
然后我转到localhost / page2
但页面打印:
test:
所以看起来会话不会在视图之间共享。为什么?这是一些配置问题吗?
这是route.php:
Route::group(['prefix' => 'pages'], function()
{
Route::get('page1', 'AdminController@page1');
Route::get('page2', 'AdminController@page2');
});
答案 0 :(得分:2)
我在控制器中编写与您相同的代码,如下所示:
public function page1()
{
Session::put('test', '1 ');
$value = Session::get('test');
echo 'test: '.$value;
}
public function page2()
{
$value = Session::get('test');
echo 'test: '.$value;
}
和路径文件也一样:
Route::group(['prefix' => 'pages'], function()
{
Route::get('page1', 'AdminController@page1');
Route::get('page2', 'AdminController@page2');
});
它正常工作 - > 输出: http://localhost/laravel-5.2/public/pages/page1
test: 1
http://localhost/laravel-5.2/public/pages/page2
test: 1
答案 1 :(得分:1)
laravel https://github.com/laravel/framework/issues/8172
中存在会话持久性问题如果您在更新会话后每次使用Session::save()
,可能会解决您的问题。所以您的page1方法将
public function page1()
{
Session::put('test', '1');
Session::save()
$value = Session::get('test');
echo 'test: '.$value;
}