为了账号安全,请及时绑定邮箱和手机立即绑定

此集合实例上不存在属性 [stock]

此集合实例上不存在属性 [stock]

PHP
largeQ 2023-08-19 16:08:43
在我的购物车模型中,我与产品模型有关系。在产品模型中,我与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表中找到产品库存


查看完整回答
反对 回复 2023-08-19
?
慕慕森

TA贡献1856条经验 获得超17个赞

看看错误,它说property stock doesn't exist on the collection instance.

只需检查一次关系即可。正如我从名称中可以理解的那样,该产品可能有多个与其关联的产品属性(One to many relation)。这可能是集合错误时该属性不存在的原因。并且您正在尝试访问集合上模型的属性,但情况不应该如此。

编辑:

$getCartDetails->product->product_attribute->sum('stock') 。这就是您的 if 条件所需要的。它将为您提供集合中所有实例的库存属性的总和。

查看完整回答
反对 回复 2023-08-19
  • 2 回答
  • 0 关注
  • 97 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信