Laravel DB insert([]) 只插入数组的第一条记录

Ric*_*ear 3 postgresql eloquent laravel-5

我有这个简单的播种机类,但由于某种原因,它只插入数组中的第一个元素,并且命令没有返回任何错误。

我使用 Laravel 5.8 和 postgres 作为数据库引擎。

<?php

use Illuminate\Support\Carbon;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;

class PermissionsTableSeeder extends Seeder
{
    public function run()
    {
        DB::table('permissions')->insert([
            'id' => 1,
            'name' => 'list_users',
            'display_name' => 'List users',
            'description' => 'Can list all users',
            'created_at' => Carbon::now()->format('Y-m-d H:i:s'),
            'updated_at' => Carbon::now()->format('Y-m-d H:i:s')
        ],
        [
            'id' => 2,
            'name' => 'show_user',
            'display_name' => 'Show single user',
            'description' => 'Can show single user details',
            'created_at' => Carbon::now()->format('Y-m-d H:i:s'),
            'updated_at' => Carbon::now()->format('Y-m-d H:i:s')
        ]);  
    }
}
Run Code Online (Sandbox Code Playgroud)

结果:

在此处输入图片说明

Jon*_*eir 5

您需要提供一个数组数组作为第一个参数:

DB::table('permissions')->insert([
    [
        'id' => 1,
        'name' => 'list_users',
        'display_name' => 'List users',
        'description' => 'Can list all users',
        'created_at' => Carbon::now()->format('Y-m-d H:i:s'),
        'updated_at' => Carbon::now()->format('Y-m-d H:i:s')
    ],
    [
        'id' => 2,
        'name' => 'show_user',
        'display_name' => 'Show single user',
        'description' => 'Can show single user details',
        'created_at' => Carbon::now()->format('Y-m-d H:i:s'),
        'updated_at' => Carbon::now()->format('Y-m-d H:i:s')
    ]
]);
Run Code Online (Sandbox Code Playgroud)