我有两个型号Cart和Products
在产品型号上,我有一个附件:amount
$appends = ['amount'];
public function getAmountAttribute(){
return $this->price * $this->taxe;
}
但当我试图从关系中获得金额时,比如:
$cart = Cart::where('id',$uid)->with('products')->get();
foreach($cart as $row){
print_r($row->products->amount);
}
它告诉我"此集合实例上不存在属性[金额]">
怎么了?
更新
产品的购物车关系
public function products(){
return $this->hasMany(Product::class,'id','product_id');
}
$row->products
是hasMany关系吗?如果是,则$row->products返回一个Collection实例,您必须循环通过$row->等产品
foreach($cart as $row){
$row->products->each(function($product){
print_r($product->amount);
});
}
您需要迭代购物车的产品
foreach ($cart as $row) {
foreach($row->products as $product) {
dd($product->amount);
}
}
在您的情况下,如果foreach
中的dd($row->products)
,您将获得一个没有属性amount
的产品集合,因此您需要迭代$cart->products
并获得每个产品的数量