Мне было интересно, можно ли вставить несколько строк, подобных этому (или что-то вроде этого):
<?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' ] ); } }
У меня есть параметры таблицы в моей базе данных с ключом и значением столбца.
Проблема с вышеприведенным кодом состоит в том, что он только вставляет первый ….
Вам нужно обернуть ваши массивы в другой массив, чтобы он выглядел так:
DB::table('settings')->insert([ [ 'key' => 'username', 'value' => 'testusername' ], [ 'key' => 'password', 'value' => 'plain' ] ]);
Обратите внимание на массив обертывания.
Теперь вы отправляете два отдельных массива в метод insert()
.
вы можете использовать метод вставки от красноречивого для массового сохранения, например
Settings::insert([[ 'key' => 'username', 'value' => 'testusername' ], [ 'key' => 'password', 'value' => 'plain' ]]);