Php OneToMany关系的laravel sync()等价项

Php OneToMany关系的laravel sync()等价项,php,laravel,sync,relation,Php,Laravel,Sync,Relation,我想知道更新关系的最佳实践是什么,比如多对多关系的sync()方法 我有这样一种一对多的关系: array:7 [▼ 0 => "first response" 1 => "second" 2 => "third" ] 一个问题可以有多个回答,一个回答只能针对一个问题 用户可以更改每个问题的答案,添加更多答案,或删除一些答案(使用javascript),或在编辑页面输入中修改答案 在QuestionsController@update我得到的回答是: array:

我想知道更新关系的最佳实践是什么,比如多对多关系的sync()方法

我有这样一种一对多的关系:

array:7 [▼
  0 => "first response"
  1 => "second"
  2 => "third"
]
一个问题可以有多个回答,一个回答只能针对一个问题

用户可以更改每个问题的答案,添加更多答案,或删除一些答案(使用javascript),或在编辑页面输入中修改答案

在QuestionsController@update我得到的回答是:

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);
你觉得怎么样?这是可行的,但我怀疑这是最好的做法

谢谢