为何环路我只作生产一个值?

时间:2019-02-02 07:59:49

标签: php mysql arrays laravel

我想显示一个数组,但是只产生一个第一个值

public static function GetUserSoal($id)
{
    $model = Soal::where('cluster_id', $id)->inRandomOrder()->limit(500)->get();

    return view('components.User.showexam', compact('model'));
}

这是刀片文件:

@for ($i = 0; $i < count($model); $i++)            
    <form action="/jawaban/store/{{$model[$i]->id}}" method="post" enctype="multipart/form-data"> 
    @csrf
        <table id="datatable" style="width:100%">
        <tbody>           
            <tr>{{$i+1}}. </tr>
            <tr>{{$model[$i]->soal}}</tr>
            <ol type="A" style="">
                <li> {{$model[$i]->A}}</li>
                <li> {{$model[$i]->B}}</li>
                <li> {{$model[$i]->C}}</li>
                <li> {{$model[$i]->D}}</li>
                <li> {{$model[$i]->E}}</li>
            </ol>
        <input list="browsers" name="jawaban[{{$model[$i]->id}}]">
            <datalist id="browsers">
              <option value="A">
              <option value="B">
              <option value="C">
              <option value="D">
              <option value="E">
            </datalist>
        @endfor
            <br>
            <br>
            <button type="submit" class="btn btn-primary text-right" id="modal-btn-save-jwb">Done</button>
    </form>

控制器:

public function GetUserJawaban($id, Request $request)
{   

    $score = 0;
    foreach($request->jawaban as $key => $value){
            return "Urutan ke-$key adalah $value";
    }

}

enter image description here

当我添加像图片jawaban值它上面只显示 “ Urutan ke-29 adalah B”,我的代码有问题吗?

2 个答案:

答案 0 :(得分:2)

如果在函数中编写return,它将结束所有处理并返回一个值。

所以返回后的所有内容都不会执行。

答案 1 :(得分:1)

问题是在该功能。更改回声。返回停止在第一次迭代中执行并退出功能。

public function GetUserJawaban($id, Request $request)
{   

    $score = 0;
    foreach($request->jawaban as $key => $value){
            echo "Urutan ke-$key adalah $value";
    }

}

然而,你可能不得不做出您使用此功能,避免双重回声问题的微小变化。 希望对您有所帮助。