[英]Laravel eloquent how to save multidimensional array
幫助請您了解如何保存此類數據:網站上有一個測驗,並且可以創建無限數量的問題
視圖create.blade.php的一部分:
<div class="form-group {{ $errors->has('question_title') ? 'has-error' : ''}}">
<label for="question_title1" class="col-md-4 control-label">{{ 'question №1' }}</label>
<div class="col-md-4">
<!--
<input type="hidden" name="question_number[]" value="1">
-->
<input class="form-control" name="question_title1" type="text" id="question_title"
value="" required>
{!! $errors->first('question_title1', '<p class="help-block">:message</p>') !!}
</div> <br> <br>
A. <input class="" name="question_description1[]" type="text" id="question_description1" value="a1">
<input type="checkbox" name="question_answer1[]" value="1" checked> <br>
B. <input class="" name="question_description1[]" type="text" id="question_description1" value="a2">
<input type="checkbox" name="question_answer1[]" value="2"> <br>
C. <input class="" name="question_description1[]" type="text" id="question_description1" value="a3">
<input type="checkbox" name="question_answer1[]" value="3"> <br>
D. <input class="" name="question_description1[]" type="text" id="question_description1" value="a4">
<input type="checkbox" name="question_answer1[]" value="4"> <br>
</div>
控制器QuizController.php的一部分:
public function store(StoreQuizRequest $request)
{
$data_quiz = $request->only(
'title', 'description', 'category', 'published', 'access', 'start_date', 'end_date',
'duration','show_answers');
$data_quiz['user_id'] = Auth::user()->id;
$quiz = Quiz::create($data_quiz);
$question_1['question_title']=$request->question_title1;
$question_1['question_description']=implode('|&-&|',$request->question_description1);
$question_1['question_answer']=implode('|',$request->question_answer1);
$question_1['quiz_id'] = $quiz->id;
$question_2['question_title']=$request->question_title2;
$question_2['question_description']=implode('|&-&|',$request->question_description2);
$question_2['question_answer']=implode('|',$request->question_answer2);
$question_2['quiz_id'] = $quiz->id;
$question_save1 = Question::create($question_1);
$question_save2 = Question::create($question_2);
return redirect('quiz')->with('flash_message', 'Quiz created!');
}
如何在控制器中創建循環以保存所有帶有DB答案的問題? 感謝您的回答!
讓我們來看看: 如何在HTML中創建數組 ?
您可以創建一個這樣的表單,並在添加更多問題時復制表單組:
<div class="form-group">
....
<input name="question_title[]" />
A. <input name="question_descriptionA[]" type="text" id="question_descriptionA" value="a1" />
<input type="checkbox" name="question_answerA[]" value="1" checked /> <br />
B. <input name="question_descriptionB[]" type="text" id="question_descriptionB" value="a2" />
<input type="checkbox" name="question_answerB[]" value="2" /> <br />
C. <input name="question_descriptionC[]" type="text" id="question_descriptionC" value="a3" />
<input type="checkbox" name="question_answerC[]" value="3" /> <br />
D. <input name="question_descriptionD[]" type="text" id="question_descriptionD" value="a4" />
<input type="checkbox" name="question_answerD[]" value="4" /> <br />
....
</div>
您可以如下訪問請求數據作為數組:
$data = $request->only('question_title',
'question_descriptionA', 'question_answerA',
'question_descriptionB', 'question_answerB',
'question_descriptionC', 'question_answerC',
'question_descriptionD', 'question_answerD');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.