2017-06-20 40 views
-1

我想基於用戶ID添加多行到數據庫,但是當我提交時,它只添加最後一行數據。多個陣列(Laravel 4)

控制器

if (isset($_POST['save'])) { 
    $sub1 = Input::get('sub1'); 
    $sub2 = Input::get('sub2'); 
    $sub3 = Input::get('sub3'); 
    $sub4 = Input::get('sub4'); 

    $key = Input::get('recordid'); 
    $req = new Results(); 
    foreach ($key as $id) { 
     $req->st_id = $id; 
     foreach ($sub1 as $s1) { 
      $req->subject1 = $s1; 
     } 
     foreach ($sub2 as $s2) { 
      $req->subject2 = $s2; 
     } 
     foreach ($sub3 as $s3) { 
      $req->subject3 = $s3; 
     } 
     foreach ($sub4 as $s4) { 
      $req->subject4 = $s4; 
     } 
     $req->save(); 
    } 

我查看

 @foreach ($data as $row) 
     <tr> 
     <td>{{$row->id}} 
      <input name="recordid[]" id="recordid[]" value="{{ $row->id}}" type="hidden"></td> 
     <td>{{$row->fname}} {{$row->lname}}</td> 
     <td><input type="text" name="sub1[]" id="sub1[]" class="form-control" placeholder="Add marks here..."></td> 
     <td><input type="text" name="sub2[]" id="sub2[]" class="form-control" placeholder="Add marks here..."></td> 
     <td><input type="text" name="sub3[]" id="sub3[]" class="form-control" placeholder="Add marks here..."></td> 
     <td><input type="text" name="sub4[]" id="sub4[]" class="form-control" placeholder="Add marks here..."></td> 
    </tr> 
    @endforeach 

...............

回答

1
$req = array(); 
$sub1 = Input::get('sub1'); 
$sub2 = Input::get('sub2'); 
$sub3 = Input::get('sub3'); 
$sub4 = Input::get('sub4'); 
$key = Input::get('recordid'); 

foreach($key as $k=>$id){ 
    $req[$k]['st_id'] = $id; 
    $req[$k]['subject1'] = $sub1[$k]; 
    $req[$k]['subject2'] = $sub2[$k]; 
    $req[$k]['subject3'] = $sub3[$k]; 
    $req[$k]['subject4'] = $sub4[$k]; 
} 

if(!empty($req)){ 
    DB::table('table_name')->insert($req); 
} 
+0

我得到這個錯誤$ this-> db-> insert_batch('exam_result',$ req);作爲未定義的屬性 –

+0

Kahn它正在尋找一種方法,我沒有它的控制器 –

+1

我已經改變$ this-> db-> insert_batch('exam_result',$ req);作爲DB :: table('table_name') - > insert($ req); 其實以前是codeigniter語法。 –