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。 表 postsusers 具有一对多关系。 表imagesuserspost 具有一对多关系,即它可以与其他用户和其他帖子共享。

所以当一个人做一个帖子插入时,它应该用一个查询将记录插入到表中。

【问题讨论】:

【参考方案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 时在每次插入/更新时执行一些任务

PHP框架 Laravel Eloquent ORM 批量插入数据,怎么实现

PHP框架 Laravel Eloquent ORM 批量插入数据,怎么实现