我有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_answers
?
question_answers看起来像这样:
我无法找到如何使用insert
方法
答案 0 :(得分:2)
由于您使用的是多对多关系,因此应使用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以附上问题的答案。