мое приложение Laravel 6 не хочет правильно сохранять элементы в сеансе - PullRequest
0 голосов
/ 31 января 2020

У меня есть сохранение в сеансе, но по какой-то причине сеанс сохраняется только после настаивания на отправке элемента в сеанс.

Если я не настаиваю, он не сохранит. В некоторых случаях это даже экономит с первой попытки, но обычно это не так.

Что это может быть? это мой код для сохранения элементов корзины в сеансе:

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

...