如何让用户无法将产品添加到来自不同商店的购物车会话?
How to make users cannot add product to cart session from different store?
所以,我想做 if else 语句,如果 $cart
会话有不同的 sponsor_id
值,用户不能从另一个 sponsor_id
添加产品
这是我的 CartController
public function addToCart(Request $request, $id)
{
$cart = session("cart");
$produk = Produk::detail_produk($id);
if (isset($cart[$id])) {
$cart[$id]["qty"]++;
session()->put('cart', $cart);
} else {
$cart[$id] = [
"sponsor_id" => $produk->sponsor_id,
"nama_produk" => $produk->nama_produk,
"harga_produk" => $produk->harga_produk,
"berat" => $produk->berat,
"gambar" => $produk->gambar,
"qty" => $request->qty
];
}
session(["cart" => $cart]);
return redirect()->back()->with('success', 'Produk Berhasil dimasukkan ke keranjang !!');
}
因此,用户必须先完成交易,然后才能将另一个 sponsor_id
的产品添加到购物车
我认为这段代码将通过循环之前的产品数据来完成。
public function addToCart(Request $request, $id)
{
$cart = session("cart");
$produk = Produk::detail_produk($id);
if (isset($cart[$id])) {
$cart[$id]["qty"]++;
session()->put('cart', $cart);
} else {
$num = count($cart);
if($num > 0){
$this_sponsor_id = $produk->sponsor_id;
foreach($cart as $produk_id => $produk_data){
if($produk_data->sponsor_id != $this_sponsor_id){
return false;
}
}
}
$cart[$id] = [
"sponsor_id" => $produk->sponsor_id,
"nama_produk" => $produk->nama_produk,
"harga_produk" => $produk->harga_produk,
"berat" => $produk->berat,
"gambar" => $produk->gambar,
"qty" => $request->qty
];
}
session(["cart" => $cart]);
return redirect()->back()->with('success', 'Produk Berhasil dimasukkan ke keranjang !!');
}
我也在想,也许你可以将物品存放在单独的购物车中,按赞助商 ID 分组。然后您可以在结账时单独为正确的商品收费。
public function addToCart(Request $request, $id)
{
$newcart = session("cart");
$produk = Produk::detail_produk($id);
$newcart = session("newcart");
if(!isset($newcart[$produk->sponsor_id])){
$newcart[$produk->sponsor_id] = [];
}
if(isset($newcart[$produk->sponsor_id][$id])){
$newcart[$produk->sponsor_id][$id]["qty"]++;
session()->put('newcart', $newcart);
} else {
$newcart[$produk->sponsor_id][$id] = [
"sponsor_id" => $produk->sponsor_id,
"nama_produk" => $produk->nama_produk,
"harga_produk" => $produk->harga_produk,
"berat" => $produk->berat,
"gambar" => $produk->gambar,
"qty" => $request->qty
];
}
session(["newcart" => $newcart]);
return redirect()->back()->with('success', 'Produk Berhasil dimasukkan ke keranjang !!');
}
我的情况变化不大。如果有人和我有同样的问题
public function addToCart(Request $request, $id)
{
$cart = session("cart");
$produk = Produk::detail_produk($id);
$num = count(array($cart));
if (isset($cart[$id])) {
$cart[$id]["qty"]++;
session()->put("cart", $cart);
} else {
if ($num > 0) {
$this_sponsor_id = $produk->sponsor_id;
foreach ($cart as $produk_id => $produk_data) {
if ($produk_data["sponsor_id"] != $this_sponsor_id) {
return redirect()->back()->with('error', 'Bersihkan Keranjang sebelum Membeli dari Booth Lain');
}
}
}
$cart[$id] = [
"sponsor_id" => $produk->sponsor_id,
"nama_produk" => $produk->nama_produk,
"harga_produk" => $produk->harga_produk,
"berat" => $produk->berat,
"gambar" => $produk->gambar,
"qty" => $request->qty
];
}
// dd($cart);
session(["cart" => $cart]);
return redirect()->back()->with('success', 'Produk Berhasil dimasukkan ke keranjang !!');
}
所以,我想做 if else 语句,如果 $cart
会话有不同的 sponsor_id
值,用户不能从另一个 sponsor_id
这是我的 CartController
public function addToCart(Request $request, $id)
{
$cart = session("cart");
$produk = Produk::detail_produk($id);
if (isset($cart[$id])) {
$cart[$id]["qty"]++;
session()->put('cart', $cart);
} else {
$cart[$id] = [
"sponsor_id" => $produk->sponsor_id,
"nama_produk" => $produk->nama_produk,
"harga_produk" => $produk->harga_produk,
"berat" => $produk->berat,
"gambar" => $produk->gambar,
"qty" => $request->qty
];
}
session(["cart" => $cart]);
return redirect()->back()->with('success', 'Produk Berhasil dimasukkan ke keranjang !!');
}
因此,用户必须先完成交易,然后才能将另一个 sponsor_id
的产品添加到购物车
我认为这段代码将通过循环之前的产品数据来完成。
public function addToCart(Request $request, $id)
{
$cart = session("cart");
$produk = Produk::detail_produk($id);
if (isset($cart[$id])) {
$cart[$id]["qty"]++;
session()->put('cart', $cart);
} else {
$num = count($cart);
if($num > 0){
$this_sponsor_id = $produk->sponsor_id;
foreach($cart as $produk_id => $produk_data){
if($produk_data->sponsor_id != $this_sponsor_id){
return false;
}
}
}
$cart[$id] = [
"sponsor_id" => $produk->sponsor_id,
"nama_produk" => $produk->nama_produk,
"harga_produk" => $produk->harga_produk,
"berat" => $produk->berat,
"gambar" => $produk->gambar,
"qty" => $request->qty
];
}
session(["cart" => $cart]);
return redirect()->back()->with('success', 'Produk Berhasil dimasukkan ke keranjang !!');
}
我也在想,也许你可以将物品存放在单独的购物车中,按赞助商 ID 分组。然后您可以在结账时单独为正确的商品收费。
public function addToCart(Request $request, $id)
{
$newcart = session("cart");
$produk = Produk::detail_produk($id);
$newcart = session("newcart");
if(!isset($newcart[$produk->sponsor_id])){
$newcart[$produk->sponsor_id] = [];
}
if(isset($newcart[$produk->sponsor_id][$id])){
$newcart[$produk->sponsor_id][$id]["qty"]++;
session()->put('newcart', $newcart);
} else {
$newcart[$produk->sponsor_id][$id] = [
"sponsor_id" => $produk->sponsor_id,
"nama_produk" => $produk->nama_produk,
"harga_produk" => $produk->harga_produk,
"berat" => $produk->berat,
"gambar" => $produk->gambar,
"qty" => $request->qty
];
}
session(["newcart" => $newcart]);
return redirect()->back()->with('success', 'Produk Berhasil dimasukkan ke keranjang !!');
}
我的情况变化不大。如果有人和我有同样的问题
public function addToCart(Request $request, $id)
{
$cart = session("cart");
$produk = Produk::detail_produk($id);
$num = count(array($cart));
if (isset($cart[$id])) {
$cart[$id]["qty"]++;
session()->put("cart", $cart);
} else {
if ($num > 0) {
$this_sponsor_id = $produk->sponsor_id;
foreach ($cart as $produk_id => $produk_data) {
if ($produk_data["sponsor_id"] != $this_sponsor_id) {
return redirect()->back()->with('error', 'Bersihkan Keranjang sebelum Membeli dari Booth Lain');
}
}
}
$cart[$id] = [
"sponsor_id" => $produk->sponsor_id,
"nama_produk" => $produk->nama_produk,
"harga_produk" => $produk->harga_produk,
"berat" => $produk->berat,
"gambar" => $produk->gambar,
"qty" => $request->qty
];
}
// dd($cart);
session(["cart" => $cart]);
return redirect()->back()->with('success', 'Produk Berhasil dimasukkan ke keranjang !!');
}