【问题标题】:laravel Eloquent ORM multiple table insertlaravel Eloquent ORM 多表插入
【发布时间】:2016-03-16 18:18:55
【问题描述】:

我将如何使用 laravel Eloquent ORM 关系在多个表中插入单个请求。即

表 1:用户

  • 身份证
  • 姓名
  • 电子邮件

表 2:帖子

  • 身份证
  • user_id
  • 内容

表 3:图片

  • 身份证
  • user_id
  • post_id
  • 图像名称

关系

  1. users id 在其他两个表中引用user_id
  2. postsusers 具有一对多关系。
  3. imagesuserspost 具有一对多关系,即它可以与其他用户和其他帖子共享。

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

【问题讨论】:

    标签: laravel-5 eloquent


    【解决方案1】:

    这是一种方法:

    $post = (new Post)->fill($request->all()->toArray())->user()->associate(Auth::user())->save();
    

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

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

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

    【讨论】:

    • 如果您能详细说明,那将是最有帮助的?
    • ,associate 方法有什么作用?
    • 它将用户与帖子相关联,因为它会将经过身份验证的用户的 id 正确存储到帖子表中的 user_id 字段中。
    猜你喜欢
    • 2019-08-01
    • 2014-04-17
    • 2012-12-10
    • 2021-07-03
    • 2017-04-07
    • 1970-01-01
    • 2014-09-30
    • 2018-08-07
    • 2012-09-24
    相关资源
    最近更新 更多