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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用laravel在多列上插入多个值?相关的知识,希望对你有一定的参考价值。

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

在这里我的观点我正在使用选择选择器进行多选

  <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   |
+----+---------+---------+--------+--------+
答案

首先,确保将表id列设置为auto increment。和其他列nullable

$languages = request('languages');

DB::table('table_name')->insert([
    'English' => in_array('En', $languages) ? 'En' : null,
    'Italian' => in_array('It', $languages) ? 'It' : null,
    'Arabic' => in_array('Ar', $languages) ? 'Ar' : null,
    'Japanese' => in_array('Jp', $languages) ? 'Jp' : null,
]);
另一答案

您将在控制器中收到一个数组language,以便检查语言是否存在将其添加到数据库中:

$en = $it = $ar = $jp = null;

if(in_array('En', $language))
    $en = 'En';
if(in_array('It', $language))
    $it = 'It';
if(in_array('Ar', $language))
    $ar = 'Ar';
if(in_array('Jp', $language))
    $jp = 'Jp';

ModelName::insert(['English' => $en, 'Italian' => $it, 'Arabic' => $ar, 'Japanes' => $jp]);

以上是关于如何使用laravel在多列上插入多个值?的主要内容,如果未能解决你的问题,请参考以下文章

具有多列主键的 Laravel 模型

如何在 Laravel 4 中对多列使用排序依据?

Laravel:如何在控制器的几种方法中重用代码片段

如何在 Laravel 5.1 中按多列对 Illuminate Collection 进行排序?

在多列上获取最小值

Latex如何插入多个图片,实现并排排列或者多行多列排列