эквивалент laravel sync () для отношения OneToMany

Я хочу знать, как лучше обновлять отношения, например, метод sync () для многих отношений.

У меня есть отношение один ко многим, как это:

Один вопрос может иметь несколько ответов, и один ответ может быть только для одного вопроса

Пользователь может изменить ответы на каждый вопрос, добавить дополнительные ответы или удалить некоторые (используя javascript) или изменить их при вводе страницы редактирования.

В обновлении QuestionsController @ я получаю такие ответы:

array:7 [▼
0 => "first response"1 => "second"2 => "third"]

(в зависимости от количества вопросов, которые отправил пользователь, оно может быть больше или меньше)

Я думал, что смогу сделать:

$question = Question::findOrFail($id);
$responses = $request->get('responses');
$question->responses()->sync($responses);

но это работает только для многих, чтобы многие отношения …
так что я делаю это:

$question = Question::findOrFail($id);
foreach($request->get('responses') as $response){
$responses[] = new Response(['content' => $response]);
}
$question->responses()->delete();
$question->responses()->saveMany($reponses);

Что ты об этом думаешь ? это работает, но у меня есть сомнения, что это лучшее, что можно сделать

Спасибо

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]