Laravel DB insert ([]) вставляет только первую запись массива - PullRequest
0 голосов
/ 08 июня 2019

У меня есть этот простой класс сеялки, но по какой-то причине он вставляет только первый элемент из массива, а команда не возвращает никакой ошибки.

Я использую 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 Ответ

1 голос
/ 08 июня 2019

В качестве первого аргумента необходимо указать массив массивов:

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')
    ]
]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...