2017-01-04 6 views
2

私は3つのテーブル持っているピボットテーブルのデータを持つ複数の行を挿入します。Laravel -

  1. 質問
  2. question_answers

質問モデル回答:

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方法

答えて

2

でそれを行う方法を手掛かりを見つけることができませんでした

enter image description here

attach()メソッドを使用する必要があります。たとえば:あなたは質問への回答を添付する回答IDを取得する必要があるため

$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()を使用することはできません。