Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在会话laravel 5.6中简单存储多个阵列_Php_Laravel - Fatal编程技术网

Php 如何在会话laravel 5.6中简单存储多个阵列

Php 如何在会话laravel 5.6中简单存储多个阵列,php,laravel,Php,Laravel,我在会话(“购物车”)中存储了一个数组,上次单击[添加到购物车],当我在会话(“购物车”)中添加另一个数组时,它存储了一个数组,然后会话无法同时保存这两个数组。 救救我 public function addtocart(Request $req,$id){ $product = _prod::find($id)->toArray(); $item = [ 'name' => $product['pName'], 'description

我在会话(“购物车”)中存储了一个数组,上次单击[添加到购物车],当我在会话(“购物车”)中添加另一个数组时,它存储了一个数组,然后会话无法同时保存这两个数组。 救救我

public function addtocart(Request $req,$id){

  $product = _prod::find($id)->toArray();
  $item = [
         'name' => $product['pName'],
         'description' => $product['pDesc'],
         'price' => $product['pPrice'],
         ];

  $cart = [
          'qtyTotal' => 0,
          'priceTotal' => 0,
          'item' => [$item]
         ];

   $req->session()->put('cart',$cart);
   $a = session()->get('cart');

}

在这里,每次添加新项目时,您都会在会话中覆盖
购物车
变量。所以,将购物车项目存储为数组,并将项目添加到数组中。代码应为:

public function addtocart(Request $req, $id) {
    $product = _prod::find($id)->toArray();
    $item = [
        'name' => $product['pName'],
        'description' => $product['pDesc'],
        'price' => $product['pPrice'],
    ];

    $cart = [
        'qtyTotal' => 0,
        'priceTotal' => 0,
        'item' => [$item]
    ];

    $cartItems = session()->get('cart');
    if (empty($cartItems)) {
        $cartItems = [];
    }
    $cartItems[] = $cart;
    $req->session()->put('cart', $cartItems);
    return view($cartItems);
}
改变这个

    $req->session()->put('cart',$cart);
    $a = session()->get('cart');
    dd($a);
为此:

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

因为您一直在覆盖会话购物车中的上一个值

,所以这里有一个简单的例子来更新您的购物车

` 公共函数addtocart(请求$req,$id){ //返回重定向(“资源/产品”)

    $product = _prod::find($id)->toArray();
    $item = [
        'name' => $product['pName'],
        'description' => $product['pDesc'],
        'price' => $product['pPrice'],
    ];
    if($req->session()->has('cart')){
        $oldCart = $req->session()->get('cart');
        $newCart = [
            'qtyTotal' => 0,
            'priceTotal' => 0,
            'item' => array_merge($item,$oldCart['item'])
        ];
        $req->session()->put('cart',$newCart);
    }

    $cart = [
        'qtyTotal' => 0,
        'priceTotal' => 0,
        'item' => [$item]
    ];


    $req->session()->put('cart',$cart);
    $a = session()->get('cart');
    dd($a);
}`