【问题标题】:store array values with multiple select box using laravel使用 laravel 使用多个选择框存储数组值
【发布时间】:2016-09-27 06:51:27
【问题描述】:

我正在尝试通过在 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();

        }

}

数据库中的值假设如下图所示:

但值正在翻倍并存储如下:

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

【问题讨论】:

    标签: mysql database laravel-5


    【解决方案1】:

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

    【讨论】:

    • @C Hunter:将详细信息保存到数据库后,将 $evcode 和 $ename 设为零有什么意义?没有意义没有。已经非常清楚地给出了我的视图和控制器。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-24
    • 1970-01-01
    • 1970-01-01
    • 2021-06-22
    • 1970-01-01
    • 2022-10-12
    • 2018-08-09
    相关资源
    最近更新 更多