【发布时间】:2018-07-29 09:53:06
【问题描述】:
我正在尝试构建一个 API 来存储和检索 MCQ 试卷。我正在使用 laravel 资源类来发送句柄 Json 数据。我需要在一个查询中将 40 条记录插入 MySQL 数据库,而不使用多维数组。有什么方法吗?
来自前端的样本数据:
{
"data":[
{
"paper_id":"5",
"question_no":"2",
"question":"test insert code",
"answer1":"answer1",
"answer2":"answer2 ",
"answer3":"answer3 ",
"answer4":"Answer4 ",
"answerC":"Correct Answer",
"knowarea":"who knows!"
},
{
"paper_id":"5",
"question_no":"3",
"question":"test insert code",
"answer1":"answer1",
"answer2":"answer2 ",
"answer3":"answer3 ",
"answer4":"Answer4 ",
"answerC":"Correct Answer",
"knowarea":"who knows!"
},
{
"paper_id":"5",
"question_no":"4",
"question":"test insert code",
"answer1":"answer1",
"answer2":"answer2 ",
"answer3":"answer3 ",
"answer4":"Answer4 ",
"answerC":"Correct Answer",
"knowarea":"who knows!"
},
{
"paper_id":"5",
"question_no":"5",
"question":"test insert code",
"aanswer1":"answer1",
"answer2":"answer2 ",
"answer3":"answer3 ",
"answer4":"Answer4 ",
"answerC":"Correct Answer",
"knowarea":"who knows!"
}
]
}`
前端发送 40 个这样的对象,我需要将它们批量插入到我的数据库中。 下面的代码是我的控制器存储功能,
` $paper->paper_id = $request->input('paper_id');
$paper->question_no = $request->input('question_no');
$paper->question = $request->input('question');
$paper->answer1 = $request->input('answer1');
$paper->answer2 = $request->input('answer2');
$paper->answer3 = $request->input('answer3');
$paper->answer4 = $request->input('answer4');
$paper->answerC = $request->input('answerC');
$paper->knowarea = $request->input('knowarea');
if($paper->save())
{
return new ExamPaperResource($paper);
}
对于批量插入数据,我有哪些选择?
【问题讨论】:
-
使用 eloquent insert 方法进行批量上传
-
那些帖子很有用@chb,但我正在寻找基于 laravel 的解决方案。像 eloquent 或任何其他软件包或内置功能
标签: php mysql json laravel bulkinsert