У меня есть сохранение в сеансе, но по какой-то причине сеанс сохраняется только после настаивания на отправке элемента в сеанс.
Если я не настаиваю, он не сохранит. В некоторых случаях это даже экономит с первой попытки, но обычно это не так.
Что это может быть? это мой код для сохранения элементов корзины в сеансе:
if(!$request->session()->has('cart')){
$request->session()->put('cart', []);
$request->session()->save();
$car = [];
}else{
$car = $request->session()->get('cart');
$request->session()->save();
}
if($request->input('buscarporid')){
$produto = Produto::where('id',$request->input('buscarporid'))->first();
$produto['search'] = $produto->nome_comercial. ' '. $produto->descricao. ' [ '.$produto->categoria->nome.' ] - '.$produto->ean_1.' - [ R$ '.number_format($produto->preco_venda, 2, ',', '.').' ]';
}else{
$produto = Produto::where('ean_1',$request->input('ean'))->first();
$produto['search'] = $produto->nome_comercial. ' '. $produto->descricao. ' [ '.$produto->categoria->nome.' ] - '.$produto->ean_1.' - [ R$ '.number_format($produto->preco_venda, 2, ',', '.').' ]';
}
if($produto && $request->session()->has('cart')) {
if (count($car) > 0) {
foreach ($car as $index => $item) {
if ($item['id'] == $produto->id && $feito == false) {
$car[$index]->qtd_saida += $request->input('qtd_saida');
$request->session()->put('cart', $car);
$request->session()->save();
$feito = true;
}
}
}
if ($feito == false){
$produto->qtd_saida = $request->input('qtd_saida');
$request->session()->push('cart', $produto);
$request->session()->save();
}
return $request->session()->get('cart');
}else{
return (new ClasseTerapeuticaResource([]))
->response()
->setStatusCode(Response::HTTP_NOT_FOUND);
}
На моем локальном компьютере это работает нормально.
Примечание: я уже пробовал использовать файл сеанса и базу данных сеанса. проблема та же. Я использую Laravel 6