【问题标题】:how to insert the pivot relationship in laravel如何在laravel中插入枢轴关系
【发布时间】:2019-07-17 11:04:03
【问题描述】:

考虑我有 2 个模型,它们之间具有多对多的枢轴关系。现在,当我想插入数据透视表时,我如何实现它目前我正在这样做:

DB::table('model1_model2')
            ->insert([
                'something' => $something,
                'something2' => $something2,
            ]);

我觉得它不正确,我确实通过一些关系或同步来保存它!知道怎么做吗? 编辑: 添加关系

 public function accommodationRoom()
    {
        return $this->belongsToMany(AccommodationRoom::class)->withPivot('guest_first_name','guest_last_name','guest_cell_phone','guest_nationality_id');
    }

【问题讨论】:

  • 只需插入记录作为第一个表外键和第二个表外键的数组。就是这样
  • 您是否为这两个表设置了模型,并且它们是否设置了适当的belongsToMany 关系?如果是这样,请您添加其中一种关系的代码。
  • @RossWilson 是的,罗斯一切都准备好了,我只想知道如何通过关系插入数据库

标签: php laravel api


【解决方案1】:

Inserting & Updating Related Models - Many To Many Relationships 文档中所述:

将关系附加到模型时,您还可以传递要插入中间表的附加数据数组:

$model1->accommodationRoom()->attach($accommodationRoomId, [
    'something'  => $something,
    'something2' => $something2,
]);

如果您要附加多个关系,那么您将传递一个多维数组,其中键是关系的 id,值是附加数据的数组:

$model1->accommodationRoom()->attach( [
    1 => ['something'  => $something, 'something2' => $something2,],
    3 => ['something'  => 'something else', 'something2' => $something2,],
]);

sync() 方法也是如此。

【讨论】:

  • @Farshad 这回答了你的问题还是你还需要帮助?
猜你喜欢
  • 2019-07-05
  • 2018-05-16
  • 1970-01-01
  • 2020-08-23
  • 2019-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多