在我的购物车模型中,我与产品模型有关系。在产品模型中,我与Product_attribute模型有关系。但我与Product_attribute模型没有关系。在本例中,我编写此代码来访问Product_attribute模型。$getCartDetails = Cart::with('product.product_attribute')->where('id',$id)->first();工作正常。我访问产品和产品属性数据现在我想统计product_attribute 库存,类似的方式想统计购物车 数量。如果Product_attribute->stock >= Cart->quantity,我更新购物车表,否则不更新这就是我写这段代码的原因 public function updateCartQuantity($id,$quantity) { $getCartDetails = Cart::with('product.product_attribute')->where('id',$id)->first(); if($getCartDetails->product->product_attribute->stock->sum() >= $getCartDetails->quantity->sum()) { DB::table('carts')->where('id', $id)->increment('quantity', $quantity); return back()->with('success', 'product Quantity in the cart Updated Successfully!'); }else{ return back()->with('error', 'Required Product Quantity is not available!'); } }
2 回答
桃花长相依
TA贡献1860条经验 获得超8个赞
您可以直接通过以下方式检查
$check_qty = DB::table('product_attribues)->where('product_id',$getCartDetails->product_id)->where('size',$getCartDetails->size)->first();
$check_qty 将根据购物车表 Product_id 和 Size 为您提供库存数量。使用 If 条件检查更新的数量和库存数量后。
因为您可以根据product_id和Size从product_attribues表中找到产品库存
慕慕森
TA贡献1856条经验 获得超17个赞
看看错误,它说property stock doesn't exist on the collection instance.
只需检查一次关系即可。正如我从名称中可以理解的那样,该产品可能有多个与其关联的产品属性(One to many relation
)。这可能是集合错误时该属性不存在的原因。并且您正在尝试访问集合上模型的属性,但情况不应该如此。
编辑:
$getCartDetails->product->product_attribute->sum('stock')
。这就是您的 if 条件所需要的。它将为您提供集合中所有实例的库存属性的总和。
- 2 回答
- 0 关注
- 97 浏览
添加回答
举报
0/150
提交
取消