laravel Eloquent ORM 多表插入
Posted
技术标签:
【中文标题】laravel Eloquent ORM 多表插入【英文标题】:laravel Eloquent ORM multiple table insert 【发布时间】:2016-03-16 18:18:55 【问题描述】:我将如何使用 laravel Eloquent ORM 关系在多个表中插入单个请求。即
表 1:用户
身份证 姓名 电子邮件表 2:帖子
身份证 user_id 内容表 3:图片
身份证 user_id post_id 图像名称关系
-
表
users
id 在其他两个表中引用user_id
。
表 posts
与 users
具有一对多关系。
表images
与users
和post
具有一对多关系,即它可以与其他用户和其他帖子共享。
所以当一个人做一个帖子插入时,它应该用一个查询将记录插入到表中。
【问题讨论】:
【参考方案1】:这是一种方法:
$post = (new Post)->fill($request->all()->toArray())->user()->associate(Auth::user())->save();
对于图片,Post
模型应该有一个模型事件如static::created
来处理图片上传和操作。
或者更有意义的是,Post
模型中的模型事件应该触发 Image
模型中的另一个模型事件。
->toArray()
可能是可选的,我现在无法在这里测试它。
【讨论】:
如果您能详细说明,那将是最有帮助的? ,associate
方法有什么作用?
它将用户与帖子相关联,因为它会将经过身份验证的用户的 id 正确存储到帖子表中的 user_id
字段中。以上是关于laravel Eloquent ORM 多表插入的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 laravel eloquent ORM 插入 PostgreSQL
如何在 Eloquent ORM laravel 中获取最后一个插入 ID
如何在 Laravel Eloquent ORM 中获取插入的多行数据
Laravel:使用 Query Builder 或 Eloquent ORM 时在每次插入/更新时执行一些任务