Laravel Session Data переписывается - PullRequest
1 голос
/ 14 мая 2019

У меня странная ситуация.Вот мой код:

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', []);
}

Вот что происходит.Когда я перехожу на "домашнюю" страницу, переменная сеанса для "location" возвращается как "north_america".Это хорошо.

Если я перейду со «домашней» страницы на «глобальную», переменная сеанса для «местоположения» вернется как «глобальная».Это тоже хорошо.

Если я затем перейду со страницы "global" на страницу "features", переменная сеанса для "location" вернется как "north_america".Это не устанавливается в ноль или что-то, это, кажется, переписано.Как это может произойти?

Вот маршруты:

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 Ответ

1 голос
/ 14 мая 2019

Разобрался.Когда браузер пытался получить отсутствующее изображение, он получал перенаправление 302 для изображения.Это шло по маршруту, который менял переменную сеанса, даже если страница браузера не двигалась.

...