laravel sync()等效于OneToMany关系

时间:2015-06-09 18:57:11

标签: php laravel sync relation

我想知道更新关系的最佳做法是什么,比如许多关系的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);
你怎么看待这个?它有效,但我怀疑这是最好的事情

感谢

0 个答案:

没有答案