Laravel文档说,我们可以使用create雄辩的方法插入“ a”记录
$flight = App\Flight::create(['name' => 'Flight 10']);
是否可以使用create方法插入多个记录而无需循环。即
$flight = App\Flight::create([['name' => 'Flight 10'], ['name' => 'Flight 11']]);
当前,我正在使用insert方法,但是它无法处理我必须使之可填充的created_at和updated_at值。
$flight = App\Flight::insert([['name' => 'Flight 10'], ['name' => 'Flight 11']);
答案 0 :(得分:1)
create()
支持仅插入一条记录。
insert()
支持插入许多记录。
createMany()
仅支持仅用于关系,不支持模型。
因此,您只能为这种雄辩的构建器选择insert()
方法。
但是,您可以在迁移中使用useCurrent()
,因此默认值将自动设置当前时间。
$table->timestamp('created_at')->useCurrent();
$table->timestamp('updated_at')->useCurrent();
这将适用于insert()
方法,而无需手动设置时间戳:
$flight = App\Flight::insert([['name' => 'Flight 10'], ['name' => 'Flight 11']);
答案 1 :(得分:0)
插入不会添加时间戳记值,因此您必须手动输入
$data = [
[
'name' => 'Flight 10'
'created_at' => date('Y-m-d H:i:s'),
'updated_at' => date('Y-m-d H:i:s')
],
[
'name' => 'Flight 11'
'created_at' => date('Y-m-d H:i:s'),
'updated_at' => date('Y-m-d H:i:s')
]
];
App\Flight::insert($data);
答案 2 :(得分:0)
手动填写时间戳记。
$data_to_create = [
[
'name' => 'Flight 10'
'created_at' => date('Y-m-d H:i:s'),
'updated_at' => date('Y-m-d H:i:s')
],
[
'name' => 'Flight 11'
'created_at' => date('Y-m-d H:i:s'),
'updated_at' => date('Y-m-d H:i:s')
]
];
App\Flight::insert($data_to_create);
答案 3 :(得分:-1)
$data = [
[
'name' => 'Flight 10'
'created_at' => date('Y-m-d H:i:s'),
'updated_at' => date('Y-m-d H:i:s')
],
[
'name' => 'Flight 11'
'created_at' => date('Y-m-d H:i:s'),
'updated_at' => date('Y-m-d H`enter code here`:i:s')
]
];
App \ Flight :: createMany($ data);