массовая вставка массива в строку

Я знаю, что есть другие вопросы для массовой вставки в Laravel. Но я сталкиваюсь с проблемой, когда пытаюсь сохранить ее в базе данных.

я использую insert() для массовой вставки. У меня есть массив данных, поступающих через request, Я никогда не пользовалась insert метод до. это выдает ошибку:

Преобразование массива в строку (SQL: вставить в questions (answer, question, questionnaire_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');
}

РЕДАКТИРОВАТЬ:

Это HTML-код, который добавляется в jquery, и пользователь может добавить несколько вопросов

'<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 результат

введите описание изображения здесь

1

Решение

Если вы хотите использовать insert() для массовой вставки вы должны подготовить данные для него. Структура должна быть массивом массивов, как в этом примере:

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

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector