猿问

如何使用laravel在多个列上插入多个值?

我是Laravel的新手,在将多个选择插入数据库的多个列时遇到了一些问题。


在这里,我将选择选择器用于多个选择


  <select multiple="multiple"  name=language[] id="language[]" class="selectpicker"  data-selected-text-format="count">

    <option name="En">English</option>

    <option  name="It">Italian</option>

    <option  name="Ar">Arabic</option>                            

    <option  name="Jp">Japanese</option>

    </select>

语言表:


+----+---------+---------+--------+--------+

| id | English | Italian | Arabic |Japanese|

+----+---------+---------+--------+--------+

|  1 |         |         |        |        |

|  2 |         |         |        |        |

|  3 |         |         |        |        |

+----+---------+---------+--------+--------+

如何将数据插入控制器中的每一列?

这就是我想要做的!


+----+---------+---------+--------+--------+

| id | English | Italian | Arabic |Japanese|

+----+---------+---------+--------+--------+

|  1 |   En    |         |   Ar   |   Jp   |

|  2 |         |    It   |        |        |

|  3 |   En    |         |        |   Jp   |

+----+---------+---------+--------+--------+


茅侃侃
浏览 198回答 2
2回答

慕森卡

首先,请确保表格id列设置为auto increment。和其他列为nullable。$languages = request('languages');DB::table('table_name')->insert([&nbsp; &nbsp; 'English' => in_array('En', $languages) ? 'En' : null,&nbsp; &nbsp; 'Italian' => in_array('It', $languages) ? 'It' : null,&nbsp; &nbsp; 'Arabic' => in_array('Ar', $languages) ? 'Ar' : null,&nbsp; &nbsp; 'Japanese' => in_array('Jp', $languages) ? 'Jp' : null,]);

摇曳的蔷薇

您将language在控制器中收到一个数组,因此您可以检查该语言是否存在,将其添加到DB中:$en = $it = $ar = $jp = null;if(in_array('En', $language))&nbsp; &nbsp; $en = 'En';if(in_array('It', $language))&nbsp; &nbsp; $it = 'It';if(in_array('Ar', $language))&nbsp; &nbsp; $ar = 'Ar';if(in_array('Jp', $language))&nbsp; &nbsp; $jp = 'Jp';ModelName::insert(['English' => $en, 'Italian' => $it, 'Arabic' => $ar, 'Japanes' => $jp]);
随时随地看视频慕课网APP
我要回答