首页 > 解决方案 > 在 PHP Laravel 中添加多张单场比赛门票

问题描述

我有一个网站prospectcompetitions.co.uk。我想将多张单场比赛的门票添加到购物车中。每场比赛都包含多张门票。如果用户选择了 3 张门票,则将其添加到购物车中,以便用户可以添加多张单场比赛门票和多张比赛门票,请查看prospectcompetitions.co.uk

public function add_to_cart(Request $req)
{
    $quantity = '0';
    $competition_id = $req->get('competitions_id');
    $action = $req->get('action');
    if($action == "add")
    {
        $p_name = $req->get('p_name');
    $product_id = $req->get('product_id');
    $product_name = $req->get('product_name');
    $product_price = $req->get('product_price');

    $cart = session()->get('cart');
     $old_session = $req->session()->get('cart');
    if(!$cart) {
    for($count = 0; $count < count($product_id); $count++)
    {
        

        $cart = [
            $count => [
                "id" => $product_id[$count],
                "quantity" => 1,
                "price" => $product_price[$count],
                "name" => $product_name[$count],
                'p_name'=>$p_name,
                'count'=>$count,
                'competition_id'=>$competition_id
            ]
        ];

        session()->put('cart', $cart);
        $old_session =  session()->put('cart', $cart);
        
        }
    }


    for($count = 0; $count < count($product_id); $count++)
    { 
        
    $cart[$count] = [
        "id" => $product_id[$count],
                "quantity" => 1,
                "price" => $product_price[$count],
                "name" => $product_name[$count],
                'p_name'=>$p_name,
                'count'=>$count,
                 'competition_id'=>$competition_id

    ];
    
    //array_merge($item,$oldCart['cart']);
    
}

    session()->put('cart', $cart);  

}
}

标签: phplaravelsession

解决方案


基本上我们使用 2D Array 来解决这个问题。

public function add_to_cart(Request $req)
{
  $quantity = '0';
  $competition_id = $req->get('competitions_id');
  $action = $req->get('action');
  if($action == "add")
  {
    $p_name = $req->get('p_name');
    $product_id = $req->get('product_id');
    $product_name = $req->get('product_name');
    $product_price = $req->get('product_price');

    $cart = session()->get('cart');
    
    if(!$cart) {
        $cart = [];
      for($count = 0; $count < count($product_id); $count++)
      {
    

        $cart[$product_id[$count]] = [
            // $count => [
                "id" => $product_id[$count],
                "quantity" => 1,
                "price" => $product_price[$count],
                "name" => $product_name[$count],
                'p_name'=>$p_name,
                'count'=>$count,
                'competition_id'=>$competition_id
            // ]
        ];

        session()->put('cart', $cart);
       
        
      }
    }else{

     for($count = 0 ; $count <   count($product_id); $count++)
      { 
    
        $cart[$product_id[$count]] = [
            "id" => $product_id[$count],
                    "quantity" => 1,
                    "price" => $product_price[$count],
                    "name" => $product_name[$count],
                    'p_name'=>$p_name,
                    'count'=>$count,
                     'competition_id'=>$competition_id

        ];
      
      }
    }
        
   
    
    session()->put('cart', $cart);  


  }
  }

推荐阅读