2016-11-20 15 views
1

Laravelに一括挿入に関するその他の質問があります。しかし、私はデータベースに格納しようとすると問題に直面しています。laravel一括挿入配列から文字列への変換

バルク挿入にを使用しています。私はrequestから来るデータの配列を持っています。前にinsertメソッドを使用したことはありません。エラーを投げています:

Array to string conversion (SQL: insert into questions (answer , question , questionnaire_id) values (1995, What is model of your bike1, ?))

私はアンケートを作成しました。 jQueryを使用して、ボタンクリックで質問が動的に追加されています。ここで

は、私がデータを格納するためにしようとしています方法です:

/** 
* Create questions 
* 
*/ 
public function createQuestions(Request $request) 
{ 
    // Insert new records 
    $data[] = $request->except('_token'); 
    Question::insert($data); 
    return back()->with('message', 'Questionnaire is being created successfully'); 
} 

編集:ここでは

This is the html code which is being appended by jquery and user can add multiple question

'<div class="question'"> 
    <div class="form-group">'+ 
     <label class="control-label col-md-4" for="question-type">Question Type:</label> 
      <div class="col-md-4">'+ 
       <select class="form-control question-type" id="'+counter+'"> 
      <option value="text" id='+counter+'>Text</option> 
      <option value="multiple" id="'+counter+'">Multiple Choice</option> 
      </select> 
     </div> 
    </div> 
<div class="form-group"> 
<label class="control-label col-md-4" for="question">Enter Question:</label> 
<div class="col-md-4"> 
<input type="text" name="question[]" class="form-control" />'+ 
    </div> 
<div class="col-md-4"> 
<button type="button" class="btn btn-danger btn-delete " id="'+counter+'">Delete Question</button> 
      </div> 
     </div> 
<div class="form-group txt-answer'+counter+'"> 
<label class="control-label col-md-4" for="answer">Answer:</label> 
<div class="col-md-4"> 
       '<input type="text" name="answer[]" id="answer" class="form-control" /> 
      </div> 
     </div> 
     <hr> 
    <div> 
</div> 

dd結果

enter image description here

です
+0

これを試してください; 'Question :: create($ request-> all));' –

+0

私はcreateが大量のデータを保存しないと思いますか? –

答えて

1

insert()をバルク挿入に使用する場合は、データを準備する必要があります。構造体は、この例のように配列の配列でなければなりません。

$data = [ 
      ['name' => 'Afghanistan', 'code' => 'AFG'], 
      ['name' => 'Albania', 'code' => 'ALB'], 
      ['name' => 'Algeria', 'code' => 'DZA'], 
     ]; 
+0

私はこれを知っていますが、私は混乱しています。私は 'db'にフィールドを' question'として、 'answer'をあなたの代わりに何を与えるのでしょうか? $ data = ['??' => '??'];私は '$ data = ['question' => '??'];を与えることができますが、他の人はどうですか?私はここで何が起こるのか分からないのですか?ありがとうございます –

+0

@ QasimAli私はあなたが使っているデータ構造が何であるか分かりませんが、あなたのデータはこのように見えるはずです[''answer' => '17アヒル'、 'question' => 'アヒルは何ですか? '、' questionnaire_id '=> 15] ' –

+0

はい、データはこのように表示されますが、刺激的な場合は私にご負担ください。現在、私はかなり混乱しています。入力欄に「どのくらいのダック?」を追加したとしますか?どのように私はすべてのインデックスからそれをつかむためにlaravelに言うだろうか? 'question' =>'ここに何を与えるのですか?入力フィールドの質問を取得するには? –

関連する問題