2016-09-27 112 views
0

我想通過在laravel post函數中使用for循環來存儲數組值,但選擇框值已全部存儲在一起。使用laravel存儲具有多個選擇框的數組值

筆者認爲:

<table> 
<tr> 
<td> 
<input type="text" class="form-control" autocomplete="off" name="particulars[]" > 
</td> 
<td> 
<select multiple name="event[]"> 
<option value="">--select--</option> 
<option value="E038|Event1">Event1</option> 
<option value="E039|Event2">Event2</option> 
<option value="E040|Event3">Event3</option> 
<option value="E041|Event4">Event4</option> 
</select> 
</td> 
</tr> 

</table> 

我的控制器:

for($i = 0; $i < count($data['particulars']); $i++) { 

     $c= new dailystatus(); // table name 
     $c->particulars = $data['particulars'][$i]; 

     if(!empty($data['event'][$i])){ 

       foreach($data['event'] as $eventname){ 

        $repnamecode=$eventname; 
        $result=(explode('|', $repnamecode, 2)); 
        $ecode[]=trim($result[0]); 
        $ename[]=trim($result[1]); 

        $evcode=implode($ecode, ','); 
        $evname=implode($ename, ','); 

       }else{ 

        $evcode=0; 
        $evname=0; 

       } 

     $c->event = $evcode; 
     $c->evname=$evname; 
     $c->save(); 

     } 

} 

在數據庫中的值假設存儲如下圖中:

enter image description here

但值越來越一倍,存儲象下面這樣:

enter image description here

所以,可以請你建議我如何避免這種重複?任何幫助,將不勝感激。

回答

0

確實如何確定代碼的工作原理有點困難,但您可能需要在調用$ c-> save()之後將$ evcode和$ evname設置爲0。否則會積累數值。

+0

@C獵人:在將詳細信息保存到數據庫之後,將$ evcode和$ ename設置爲零的目的是什麼?沒有意義不。非常清楚地給出了我的觀點和控制者。 – 06011991