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

时间:2019-06-08 19:14:42

标签: postgresql laravel-5 eloquent

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

我使用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')
        ]);  
    }
}

结果:

enter image description here

1 个答案:

答案 0 :(得分:1)

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

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')
    ]
]);