使用laravel存储具有多个选择框的数组值

时间:2016-09-27 06:51:28

标签: mysql database laravel-5

我试图通过在laravel post函数中使用for循环来存储数组值,但是选择框值将一起存储。

我的观点:

<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

那么请你建议我如何避免这种重复?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

如果没有完整的来源,确切地确定你的代码是如何工作的有点困难但你可能需要在调用$ c-&gt; save()之后将$ evcode和$ evname设置为0否则会积累价值。