laravel 5.6批量插入json数据 [英] laravel 5.6 bulk inserting json data
问题描述
我正在尝试构建一个用于存储和检索MCQ考试论文的API.我正在使用laravel资源类发送句柄Json数据.我需要在单个查询中将40条记录插入MySQL数据库,而无需使用多维数组.有没有可用的方法?
I am trying to build an API to store and retrieve MCQ exam papers. I am using laravel resource class to send handle Json data. I need to insert 40 records into MySQL database in a single query without using multi dimensional arrays. Is there any method available?
从前端采样数据:
{
"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个此类对象,我需要将其批量插入到我的数据库中. 下面的代码是我的控制器存储功能,
The front end send 40 such objects i need to bulk insert them into my database. The below code is my controller store function,
` $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);
}
批量插入数据有哪些选择?
What are my choices for bulk inserting the data?
推荐答案
此代码对我有用.它插入了全部40条记录,没有问题.
This code works for me. It inserted all 40 records with no problems.
$array = $request->all();
foreach($array["data"] as $row)
{
Exam_Paper::create(['paper_id' => $row["paper_id"],
'question_no' => $row["question_no"],
'question' => $row["question"],
'answer1' => $row["answer1"],
'answer2' => $row["answer2"],
'answer3' => $row["answer3"],
'answer4' => $row["answer4"],
'answerC' => $row["answerC"],
'knowarea' => $row["knowarea"],
]);
}
这篇关于laravel 5.6批量插入json数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!