php - 在 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);
}
}
解决方案
基本上我们使用 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);
}
}
推荐阅读
- jackson - Jackson Databind 2.8.x 行为更改
- python - 如何在python中的mysql select *查询后遍历游标?
- python - grok 最喜欢的颜色
- angular - 为请求找到无效的 CSRF 令牌
- php - 如何在php中爆炸字符串?
- node.js - 节点休息和 websockets 连接
- loops - 我的代码错了吗?
- java - 使用spring配置多个数据源,包括namedparameterjdbctemplate
- python - socket.error:[Errno 10060]:无法使用 python 从 Outlook 发送电子邮件
- excel - csv 文件丢失格式并要求更新