Laravel - 使用中间表数据插入多行记录

3
我有三个表格:
  1. 问题
  2. 答案
  3. 问题答案
问题模型:
public function answer()
    {
        return $this->belongsToMany(Answer::class);
    }

我创建了一个页面,在该页面上输入问题和4个答案,并将它们插入到我的数据库中。
        $question = new Question;
        $question->title = $request->question_title;
        $question->save();

        $answers = $request->answers;
        $answer = Answer::insert($answers);

我该如何为每个问题也插入question_answersquestion_answers长这样:

enter image description here

我找不到使用insert方法的线索来完成它。
1个回答

3

因为你正在使用多对多关系,所以应该使用attach()方法。例如:

$question = Question::create($request->question); // Save question.

$answersIds = [];
foreach ($request->answers as $answer) {
    $answersIds [] = Answer::create($answer)->id; // Save each answer.
}

$question->answers()->attach($answersIds); // Attach answers to the question.

同时,您不能使用insert()批量插入答案,因为您需要获取答案ID以将答案附加到问题上。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接