Laravel Eloquent ORM 多表插入

4
我该如何使用 Laravel Eloquent ORM 关系一次性向多个表插入记录?
表格 1:用户
- id - 名称 - 电子邮件
表格 2:帖子
- id - 用户 ID - 内容
表格 3:图片
- id - 用户 ID - 帖子 ID - 图片名称
关系:
1. 表格 `users` 中的 id 引用了其他两个表格中的 user_id。 2. 表格 `posts` 与 `users` 之间有一对多的关系。 3. 表格 `images` 与 `users` 和 `post` 之间都有一对多的关系,也就是说可以与其他用户和帖子共享。
因此,当有人发布帖子时,应该通过单个查询将记录插入到相关表格中。
1个回答

2
这是一种实现方式:
$post = (new Post)->fill($request->all()->toArray())->user()->associate(Auth::user())->save();

关于图片,Post模型应该有一个模型事件,例如static::created来处理图像上传和操作。

或者更有意义的是,在Post模型中的一个模型事件应该触发来自Image模型的另一个模型事件。

->toArray()可能是可选的,在我现在所在的地方无法测试它。


如果您愿意详细说明,那将非常有帮助吗? - Jimmy Obonyo Abor
associate 方法是做什么用的? - Jimmy Obonyo Abor
1
它将用户与帖子关联起来,因为它将通过正确地将经过身份验证的用户的ID存储到帖子表中的user_id字段中实现。 - user2094178

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接