我想知道更新关系的最佳做法是什么,比如许多关系的sync()方法。
我有一对多的关系:
一个问题可以有多个答案,一个答案只能针对一个问题
用户可以更改每个问题的回复,添加更多回复或删除一些回复(通过使用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);
你怎么看待这个?它有效,但我怀疑这是最好的事情
感谢