Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 24.05.2021 20:20:53

Почему не ансетится сессион?

есть две функции в классе, если запускаю роут который ведёт на функцию delCart то потом когда запускаю роут с функцией index массив сешн удаляется, то есть cart=[] пустой массив, если запускаю роут который запускает функцию addToCart то он обновляет массив только в окне где был запущен этот роут, в другом окне где открыт роут index массив не удаляется, что это за магия такая? две одинаковые функции одна работает другая нет.

public function index(){

        dd(session()->all());
        return view('shops.'.tenant('template').'.cart');
    }

    public function addToCart(Request $req, $id, $quantity){

//        if($req->session()->missing('cart')){
//            $cart = [];
//            $req -> session()->put('cart',$cart);
//        }
//
//       // dd(session()->all());
//
//        $cart_array = session()->get('cart');
//        foreach($cart_array as $key => $cart){
//            if($cart['id']==$id){
//
//              //  $product = $req -> session()->forget('cart.'.$key);
//
//              $cart_array[$key]['quantity'] += $quantity;
//              //$req ->session()->forget('cart');
//              //$req ->session()->put('cart',$cart_array);
//
//              //return ;
//            }
//        }

        $cart = [];
        $req -> session()->put('cart',$cart);
        //$req ->session()->put('cart',$cart_array);
        //dd($cart_array);
        dd(session()->all());
//
        $offers = Offer::with('product','feature')->where('id',$id)->first();

        if(empty($offers->id)){
            return response()->json(['result'=>'unsuccess','text'=>'Нет такого товара']);
        }

        //dd($offers->retail_price);
        $cart = ['id'=>$id,'quantity'=>$quantity,'name'=>$offers->product->name,'article'=>$offers->product->code_1c,'price'=>$offers->retail_price];
        $req ->session()->push('cart',$cart);
        $arr = session()->get('cart');
        $quantity= 0;
        foreach($arr as $quant){ $quantity += $quant['quantity']; }
        $summ_cart = 0;
        foreach($arr as $summ){ $summ_cart += $summ['price']*$summ['quantity']; }

        return response()->json(['result'=>'success','cart'=>$cart,'quantity'=>$quantity,'summ_cart'=>$summ_cart]);
        //return response()->json(['result'=>'success','text'=>'товар  добавлен в сравнение','quantity_product'=>count($arr)]);


    }

    public function delCart(Request $req){

        $cart = [];
        $req -> session()->put('cart',$cart);

    }

Не в сети

#2 25.05.2021 13:23:31

Re: Почему не ансетится сессион?

всё разобрался, функция dd мешает работе сессий, если её убрать всё отлично работает.

Не в сети

#3 25.05.2021 16:55:50

Re: Почему не ансетится сессион?

ну dd() не мешает работе сессий, она выводит дамп данных и останавливает! работу, т.е. всё что после неё не отрабатывает уже

Не в сети

Подвал раздела