我试图插入一系列联系人,然后我需要将每个联系人插入数据透视表......有没有聪明的方法来解决这个问题?
DB::beginTransaction();
try {
(DB::table('contacts')->insert($this->contacts()) );
//I need also to insert every contact on my group_contacts pivot table...
DB::table('group_contacts')->insert([
"company_id" => $this->company,
"group_id" => $this->group,
"contact_id" => DB::getPdo()->lastInsertId()
]);
DB::commit();
} catch(Exception $e) {
//TODO: Listener for $e on saving.
DB::rollback();
}
答案 0 :(得分:0)
答案 1 :(得分:0)
不是一次插入整个数组,而是一次接触1个并将流畅的对象保存到局部变量。
然后在保存透视数据时使用结果对象id。
答案 2 :(得分:0)
同意Abba Bryant,当时保存一个联系人,并继续与联系对象一起工作。
然后你可以这样做:
$contact->group()->attach($this->group);
有关多对多关系以及插入或更新数据透视值的更多信息,请参阅以下文章:http://vegibit.com/many-to-many-relationships-in-laravel/