Laravel会话数据被重写

时间:2019-05-14 15:46:51

标签: php session laravel-5 session-variables

我的情况很奇怪。这是我的代码:

public function getHomepage(Request $request){
    $data['testimonials'] = $this->getTestimonials();
    session()->put('location', 'north_america');
    \debugbar()->info('UPDATED SESSION');
    session()->save();
    return view('site.index')->with('data', $data);
}

public function getGlobalPage(Request $request){
    $data['testimonials'] = $this->getTestimonials();
    if(session()->has('location')){
        session()->forget('location');
    }
    session()->put('location', 'global');
    session()->save();
    return view('site.global')->with('data', $data);
}

public function getFeaturesPage(Request $request){
    //\debugbar()->info($request);
    //echo session()->get('location');
    return view('site.features')->with('data', []);
}

这是发生了什么。当我转到“主页”页面时,“位置”的会话变量返回为“ north_america”。那很好。

如果我从“主页”页面移至“全局”页面,则“ location”的会话变量将返回为“ global”。那也很好。

如果我随后从“全局”页面移至“功能”页面,则“位置”的会话变量将以“ north_america”的形式返回。它没有被设置为null或类似的东西,似乎已被重写。怎么会这样?

以下是路线:

Route::get('/', ['as' => 'site.home', 'uses' => 'Site\SiteController@getHomepage']);
Route::get('features', ['as' => 'site.features', 'uses' => 'Site\SiteController@getFeaturesPage']);
Route::get('global', ['as' => 'site.global', 'uses' => 'Site\SiteController@getGlobalPage']);

1 个答案:

答案 0 :(得分:1)

弄清楚了。当浏览器尝试获取丢失的图像时,它收到该图像的302重定向。即使浏览器页面没有移动,这也达到了更改会话变量的路由。