2015-08-11 6 views
1

Я пытаюсь обновить несколько связей одновременно, однако, только последний вызов синхронизации фактически сохраняет в базу данных в следующем коде:Laravel/Красноречивый BelongsToMany синхронизация более одного отношения

// 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()); 

Если я поменять операторы синхронизации вокруг, но только последний сохраняет в базе данных. Любые идеи, почему это происходит?

ответ

2

Да, это потому, что синхронизация удаляет все записи из сводной таблицы, а затем вставляет новые. Вторая синхронизация переписывает все, что вставлено в первую синхронизацию.

+0

Gotcha! Я использую одну и ту же сводную таблицу для обоих типов состояний, нужно думать о другом подходе. Благодаря! –