簡體   English   中英

Laravel雄辯的如何保存多維數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM