【发布时间】:2021-11-01 06:26:22
【问题描述】:
表结构如下:
用户
- 有很多页
页面
- 属于用户
- 有很多笔记
备注
- 属于用户
我要创建一个笔记:
$note = new Note([
'page_id': $this->page->id,
'user_id': auth()->id(),
'title': 'Foobar'
]);
$note->save();
简单。由于批量分配漏洞,我想避免在笔记模型的可填充内有外键。代码更改为:
$note = $this->page->notes()->create([
'title': 'Foobar'
]);
$note->user()->associate(auth()->user());
$note->save();
模糊。为此,我必须在迁移中使注释的 user_id 可以为空。这感觉不对,因为没有用户,便条永远不应该存在。你会如何解决这个问题?
【问题讨论】:
-
一个页面只能有1个用户,一个注释只能属于一个页面吗?看起来是使用 HasManyThrough 关系的好地方,其中用户通过页面有许多注释。 (使笔记属于页面而不是用户)