我的情况很奇怪。这是我的代码:
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']);
答案 0 :(得分:1)
弄清楚了。当浏览器尝试获取丢失的图像时,它收到该图像的302重定向。即使浏览器页面没有移动,这也达到了更改会话变量的路由。