我需要有关以下主题的一些建议和帮助。
我有这样的迁移设置。
+--------------------+----------------------+--------------------+
| plates | plates_container | container_slots |
+--------------------+----------------------+--------------------+
| id | id | id |
| plate_container_id | number_of_slots(int) | slot |
| container_slot_id | | occupied (boolean) |
| | | plate_container_id |
+--------------------+----------------------+--------------------+
表之间的关系是这样的。
盘子
板
belongsTo
a platecontainer
板
belongsTo
containerslot
板式容器
platecontainer
hasMany
containerSlots
platecontainer
hasMany
plates
货柜槽
ContainerSlot
belongsTo
plateContainer
ContainerSlot
hasOne
plate
题
如何(由
id
指定)如何获取所有number_of_slots
,并检查其中哪些插槽已经为occupied
,哪些不是。因此,需要澄清更多。我要的是这样或类似的列表。
slots = [
1 => false,
2 => false,
3 => true,
4 => false
//etc
];
如果您对数据库结构有其他建议,请在评论中告知我。在用户为
occupied
选择slot
之后,每次更新plate
属性时,我都会有些怀疑。 最佳答案
Eloquent's collection methods和pluck
将为您提供帮助。假设您已经为上述每个表正确定义了模型,则可以执行以下操作:
PlateContainer::find($id)
->container_slots
->pluck('occupied', 'id');
这将以以下形式(基本上是数组)为您提供所需的预期结果:
=> Illuminate\Database\Eloquent\Collection {#1859
all: [
1 => true,
2 => true,
3 => false,
4 => true
],
}