laravel - 在连接的数据透视字段中获取值的总和
问题描述
我试图找出一种很好且有效的方法来获取连接表中的数据透视字段的总和。我有一个 Laravel 项目的以下骨架结构,用户可以从社区储藏室租用物品。
创建项目表:
$table->increments('id');
$table->string('name');
$table->integer('stock')->unsigned();
创建人表:
$table->increments('id');
$table->string('name');
create_item_person_table:
$table->integer('person_id')->unsigned();
$table->integer('item_id')->unsigned();
$table->integer('quantity')->unsigned();
然后我有以下两个关系来定义一个人租了多少物品:
return $this->belongsToMany('App\Item')->withPivot('quantity');
return $this->belongsToMany('App\Person')->withPivot('quantity');
我正在寻找一种简单的方法来查询 Item 模型以确定仍有多少可出租库存可供出租。本质上,“Item.stock”减去连接表中“数量”轴的总和。我希望在我的 Item 模型上创建一个自定义 getAvailableAttribute() 以便于访问我需要访问它的所有地方。
我对基本/中级 Laravel 非常熟悉,但复杂的子查询仍然有点超出我的掌握。
非常感谢!
解决方案
推荐阅读
- kotlin - 为什么 IntArray 上的 toString 会将地址添加到 Kotlin 中的列表中?
- mysql - Select 临时表上的语句以显示当前在活动表中和不在活动表中的行
- java - 通过操作事件更改 JPanel 组件的属性
- python - Pandas - 根据其他 3 列中的值设置列中的值
- node.js - 子文档中不同的 MongoDB 查询
- raku - 地图签名与Whatever不匹配?x 对 X 对 xx
- r - 在 R 中使用数据过滤创建新列
- powershell - 每 3 秒清除一次运行无限循环的 powershell 的内存/缓冲区
- dart - Flutter:传递未来
与图表一样 - ms-access - 应用程序定义或对象定义的错误设置子表单记录源