I was wondering if it's possible to insert multiple rows like this (or something like this):
<?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'
]
);
}
}
I have a table settings in my database with columns key & value.
The problem with the code above is that he only inserts the first one ... .
You need to wrap your arrays in another array, so it would look like this:
DB::table('settings')->insert([
[
'key' => 'username',
'value' => 'testusername'
],
[
'key' => 'password',
'value' => 'plain'
]
]);
Notice the wrapping array.
What you are doing now is actually sending two separate arrays to the insert()
method.
you can use insert method from eloquent for bulk save like
Settings::insert([[
'key' => 'username',
'value' => 'testusername'
],
[
'key' => 'password',
'value' => 'plain'
]]);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With