Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.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中的会话购物车添加和更新产品_Php_Laravel_E Commerce_Cart_Shopping Cart - Fatal编程技术网

Php 向Laravel中的会话购物车添加和更新产品

Php 向Laravel中的会话购物车添加和更新产品,php,laravel,e-commerce,cart,shopping-cart,Php,Laravel,E Commerce,Cart,Shopping Cart,我正在为在拉雷维尔开会的客人建造一辆购物车。 我可以向会话变量“cart”添加一个具有数量的产品。但是,当我再次添加相同的产品时,我无法增加数量,因为我无法在数组中搜索相同的产品ID 控制器 公共函数addToSessionCart(请求$Request,$id) { 如果(session()->has('cart')){ $oldCart=session()->get('cart'); $cartdata=$oldCart; 如果(数组\u键\u存在('product\u id',$cartd

我正在为在拉雷维尔开会的客人建造一辆购物车。 我可以向会话变量“cart”添加一个具有数量的产品。但是,当我再次添加相同的产品时,我无法增加数量,因为我无法在数组中搜索相同的产品ID

控制器

公共函数addToSessionCart(请求$Request,$id)
{
如果(session()->has('cart')){
$oldCart=session()->get('cart');
$cartdata=$oldCart;
如果(数组\u键\u存在('product\u id',$cartdata)){
if(在数组中($id,$cartdata['product\u id'],true)){
$cartdata['quantity']+=1;
}否则{
$cartdata['product_id']=$id;
$cartdata['quantity']=1;
}
}
}否则{
$cartdata=[];
$cartdata['product_id']=$id;
$cartdata['quantity']=1;
}
session()->put('cart',$cartdata);
session()->flash('message','Item added to cart!');
返回();
}
我正在将数据从我的AppServiceProvider传递到购物车:

view()->composer('*', function ($view) {
    if (Auth::check()) {
        $cart_items = Cart::where('user_id', Auth::user()->id)->with('product')->get();
        $cart_items_count = Cart::where('user_id', Auth::user()->id)->count();
        $menus = Menu::where('status', '1')->orderBy('order', 'ASC')->get();
        $view->with(['cart_items' => $cart_items, 'cart_items_count' => $cart_items_count, 'menus' => $menus]);
    } else {
        $cart_items = null;
        $session_cart_items = null;
        if (\Session::get('cart')) {
            $session_cart_items = [];
            foreach (session('cart') as $session_cart_items[]) {
                $session_cart_items['product'] = Product::where('id', session('cart.product_id'))->get();
                $session_cart_items['quantity'] = session('cart.quantity');
            }
        }

        $cart_items_count = count(\Session::get('cart'));
        $menus = Menu::where('status', '1')->orderBy('order', 'ASC')->get();
        $view->with([
            'cart_items' => $cart_items, 'cart_items_count' => $cart_items_count, 'menus' => $menus,
            'session_cart_items' => $session_cart_items,
        ]);
    }
}); 
查看

@foreach($session\u cart\u items['product']作为$key=>$name)
image}“alt=”image“>
{{$session_cart_items['quantity']}
x
₹;{{$name->price}
@php
$total+=($name->price*$session\u cart\u items['quantity']);
@endphp
@endforeach

我希望在将同一产品添加到购物车时增加数量。如果没有,则将新产品id和数量添加到会话数组中

此行需要更改:

foreach (session('cart') as $session_cart_items[]) {
您不能使用
[]
进行阅读

foreach (session('cart') as $session_cart_items) {