问题描述
模型 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>
来源: