我正在尝试一次更新多个关系,但是,只有最终的同步调用实际上会在以下代码中保存到数据库中:
// find article by ID
$article = Article::find($id);
// Update status relationships
$article->authoringStatus()->sync([$request->authoringStatus]);
$article->publicationStatus()->sync([$request->publicationStatus]); // Only this one syncs
// save the rest of the request data
$article->update($request->all());
如果我交换同步语句,仍然只有最后一个保存到数据库。任何想法为什么会这样?
答案 0 :(得分:2)
是的,这是因为同步会从数据透视表中删除所有记录,然后插入新记录。第二个同步是覆盖第一次同步中插入的任何内容。