Laravel 5播种机 - DB中的多行

时间:2015-09-15 15:02:54

标签: php mysql laravel row laravel-5.1

我想知道是否可以像这样插入多行(或类似的东西):

<?php

use Illuminate\Database\Seeder;

class SettingTableSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        DB::table('settings')->insert(
            [
                'key' => 'username',
                'value' => 'testusername'
            ],
            [
                'key' => 'password',
                'value' => 'plain'
            ]
        );
    }
}

我的数据库中有表格设置,列键&amp;值

上面代码的问题是他只插入第一个......

3 个答案:

答案 0 :(得分:31)

您需要将数组包装在另一个数组中,所以它看起来像这样:

DB::table('settings')->insert([
    [
        'key' => 'username',
        'value' => 'testusername'
    ],
    [
        'key' => 'password',
        'value' => 'plain'
    ]
]);

注意包装数组。

您现在正在做的事实上是向insert()方法发送两个单独的数组。

答案 1 :(得分:1)

您可以使用eloquent中的insert方法进行批量保存,例如

Settings::insert([[
            'key' => 'username',
            'value' => 'testusername'
        ],
        [
            'key' => 'password',
            'value' => 'plain'
        ]]);

答案 2 :(得分:-1)

在run方法中尽可能多地重复DB :: table代码!:

DB::table('settings')->insert(
            [
                'key' => 'username',
                'value' => 'testusername1'
            ]
        );

 DB::table('settings')->insert(
            [
                'key' => 'username',
                'value' => 'testusername2'
            ]
        );

 DB::table('settings')->insert(
            [
                'key' => 'username',
                'value' => 'testusername3'
            ]
        );