laravel批量插入数组到字符串转换

时间:2016-11-20 12:22:05

标签: php arrays laravel bulkinsert

我知道在Laravel中有大量插入的其他问题。但是当我尝试将其存储在数据库中时,我遇到了一个问题。

我正在使用insert()进行批量插入。我有一组数据通过request。我之前从未使用过insert方法。这是一个错误:

  

数组到字符串转换(SQL:插入questionsanswerquestionquestionnaire_id)值(1995,你的自行车1的型号是什么?))

我已经开发了一份调查问卷。使用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'); 
}

修改

  

这是由jquery追加的html代码,用户可以添加多个问题

'<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

1 个答案:

答案 0 :(得分:2)

如果您想使用insert()进行批量插入,则应为其准备数据。结构应该是一个数组数组,如下例所示:

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