Laravel 会话数据被重写
Posted
技术标签:
【中文标题】Laravel 会话数据被重写【英文标题】:Laravel Session Data getting rewritten 【发布时间】:2019-10-01 16:56:31 【问题描述】:我遇到了一个奇怪的情况。这是我的代码:
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”。那很好。
如果我从“主页”页面移动到“全局”页面,“位置”的会话变量将返回为“全局”。那也很好。
如果我随后从“全局”页面移动到“功能”页面,“位置”的会话变量将返回为“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】:想通了。当浏览器尝试获取丢失的图像时,它会收到图像的 302 重定向。即使浏览器页面没有移动,这也会改变会话变量。
【讨论】:
以上是关于Laravel 会话数据被重写的主要内容,如果未能解决你的问题,请参考以下文章
Laravel:file_put_contents() 无法打开流:会话文件夹的权限被拒绝