Laravel Импортировать CSV-файл с полем массива - PullRequest
0 голосов
/ 06 мая 2020

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

Я объявил поле параметров как json в миграциях и отбросил это в массив

это моя функция импорта в AdminCsvController:

public function import(){

$name = request()->file('csv-file')->getClientOriginalName();

if ($name == strpos($name, 'users')) {
  Excel::import(new UsersImport,request()->file('csv-file'));
  Session::flash('message', 'User successfully imported.');
  return redirect(route('admin.users.index'));
} elseif ($name == strpos($name, 'questions_import.csv')) {
  Excel::import(new QuestionsImport,request()->file('csv-file'));
  Session::flash('message', 'Question successfully imported.');
  return redirect(route('admin.questions.index'));
} else {
  Session::flash('message', 'Name of CSV-File not correct.');
  return redirect(route('admin.home'));
}

}

это мой файл csv:

question,options,correct_answer,categories_id
Test Question?,["Test","Hello","From CSV","Blablub"],Test,2

i think => [«Тест», «Привет», «Из CSV», «Blablub»] - это проблема

, и если я захочу импортировать данные, я получу эту ошибку:

Illuminate \ Database \ QueryException SQLSTATE [23000]: нарушение ограничения целостности: 1048 Параметры столбца не могут быть пустыми (SQL: вставить в questions (question_text, options, correct_answer, categories_id, updated_at, created_at) значения (Тестовый вопрос?, [«Тест», «Привет», «Из CSV», «Blablub»], Тест, 2,?,?,?, 2020-05-06 10:49:14, 2020-05-06 10:49:14)

может кто-нибудь мне поможет? :)

...