我想知道是否可以像这样插入多行(或类似的东西):
<?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'
]
);
}
}
我的数据库中有表格设置,列键&amp;值
上面代码的问题是他只插入第一个......
答案 0 :(得分:31)
您需要将数组包装在另一个数组中,所以它看起来像这样:
DB::table('settings')->insert([
[
'key' => 'username',
'value' => 'testusername'
],
[
'key' => 'password',
'value' => 'plain'
]
]);
注意包装数组。
您现在正在做的事实上是向insert()
方法发送两个单独的数组。
答案 1 :(得分:1)
您可以使用eloquent中的insert方法进行批量保存,例如
Settings::insert([[
'key' => 'username',
'value' => 'testusername'
],
[
'key' => 'password',
'value' => 'plain'
]]);
答案 2 :(得分:-1)
在run方法中尽可能多地重复DB :: table代码!:
DB::table('settings')->insert(
[
'key' => 'username',
'value' => 'testusername1'
]
);
DB::table('settings')->insert(
[
'key' => 'username',
'value' => 'testusername2'
]
);
DB::table('settings')->insert(
[
'key' => 'username',
'value' => 'testusername3'
]
);