Why still duplicate the data even i use the updateorcreate method in laravel sorry for my bad english here's my code:
$customerId = Auth::id();
$unpaid = 'unpaid';
$cartTables = CartModel::where(['user_id' => $customerId, 'cart_status' => $unpaid])->get();
$addReward = array();
foreach( $cartTables as $key => $value) {
$addReward[] = $request['product_id'][$key];
}
$datas = $request->product_id;
if(count($cartTables) == 0 || $addReward != $datas) {
foreach ($request->product_id as $key => $value) {
$cartData = array(
'user_id' => $customerId,
'product_id' => $request['product_id'][$key],
'product_image' => $request['product_image'][$key],
'product_name' => $request['product_name'][$key],
'product_quantity' => $request['product_quantity'][$key],
'product_price' => $request['product_price'][$key],
'cart_created_at' => new DateTime(),
'cart_status' => 'unpaid',
);
CartModel::updateOrCreate($cartData);
}
return redirect('product/cart');
}
I just want to insert only the unique products and ovewrite if have an existing products.