php - 关系访问器在 Laravel 中不起作用
问题描述
我有两个模型购物车和产品
在产品型号上,我有一个“访问器”: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->products ,例如,
foreach($cart as $row){
$row->products->each(function($product){
print_r($product->amount);
});
}
推荐阅读
- typescript - 我如何知道我的变量是否具有“任何”数据类型?
- reactjs - Reactjs 功能组件从表格中的模式添加管理员输入的表单值作为前端的新条目
- python - .get_rect() 和 pygame.Rect() 有什么区别?
- javascript - 由于错误,无法使用 Angular FormsModule
- android-studio - Android Studio 在 M1 Apple Silicon 芯片上非常滞后
- amazon-ec2 - 通过 CodeStar 创建 Amazon Linux 2 实例
- node.js - TensorFlow 数据集因数据过多而崩溃
- python - 是否可以使用 Python 设置 php $_SESSION 变量,以便我可以继续访问该变量?
- python - 无法在 Apple Silicon 上导入 pyodbc - 找不到符号:_SQLAllocHandle
- flutter - 按钮的对齐颤动