ObjetBox 一对一关系

问题描述

模型 A 和 B 各有一个以对方为目标的 ToOne 关系。我必须在两侧都设置目标,还是可以像多对多那样只在一侧设置?

解决方法

在幕后,通过在对象上设置虚拟目标 ID 属性来保存 ToOne 关系。 ToOne 关系也是单向的。所以这两个 ToOne 关系是独立的。

也许使用反向链接更适合您。如果每个 A 引用不同的 B,则指向该 ToOne 关系的反向链接将仅包含一个 A。例如:

// Edit.vue
<template>
    ...
    <div v-for="location in book.locations">
        <div>
            <jet-label for="location" value="Location" />
            <jet-input name="location" type="text" class="mt-1 block w-full" v-model="???"/>
        </div>
    </div>
</template>

...

<script>
data() {
    return {
        form: this.$inertia.form({
            locations: this.book.locations???
        })
    }
},</script>

来源: