Сессии не сохраняется или перезаписывается
Я храню массив в сессии, типо корзины, проблема заключается в том, что (иногда, если подключен к сети с раздачи мобильного интернета) то при добавлении нового элемента, сессия записывается и сразу же удаляется оставляя предыдущее значение или просто перезаписывается(стираться предыдущие элементы, и остаётся новый).
Как будто меняться пользователи, а иногда все четко работает.
При подключении с домашнего скоростного интернета такого не наблюдается, как только раздашь с телефона постоянные лаги.
Сесcии хранятся в Redis.
Может проблема в Session Sweeping Lottery?
Но менял значения все так же.
Пример правильной работы:
- добавить товар "А" = Лежит товар "А";
- добавить товар "Б" = Лежит товар "А", "Б";
Пример лага:
- добавить товар "А" = Лежит товар "А";
- добавить товар "Б" = Лежит товар "Б";
public function addProductToArraySalesAjaxCustom($request)
{
$stok = Stock::find($request->idStok);
if (!empty($stok->toArray())){
$array = array(array(
'id' => $stok->id,
'name' => $stok->product_view->name,
'amount' => 1,
'salePrices' => $stok->product_view->salePrices,
'purchasePrice' => $stok->purchasePrice,
'coming' => $stok->coming,
'outgoing' => $stok->outgoing,
'remainder' => $stok->coming - $stok->outgoing,
'sum' => $stok->product_view->salePrices,
'profit' => number_format($stok->product_view->salePrices - $stok->purchasePrice, 2, '.', ''),
));
if (session()->has('productArraySales')) {
$newArray = array_merge(unserialize(session('productArraySales')), $array);
$request->session()->put('productArraySales', serialize($newArray));
} else {
$request->session()->put('productArraySales', serialize($array));
}
}
}
Источник: Stack Overflow на русском