【发布时间】:2017-08-20 22:21:04
【问题描述】:
我的 laravel 5.2 应用中有这个播种器类:
class UserTypesTableSeeder extends Seeder
{
public function run()
{
DB::table('user_types')->insert([
[
'type' => 'patient',
'created_at' => Carbon::now(),
'updated_at' => Carbon::now(),
],
[
'type' => 'doctor',
'created_at' => Carbon::now(),
'updated_at' => Carbon::now(),
]
]);
}
}
现在,我想在同一个播种器类中添加另一条记录。我尝试使用 firstOrCreate() :
UserType::firstOrCreate([
'type' => 'patient',
'created_at' => Carbon::now(),
'updated_at' => Carbon::now(),
]);
UserType::firstOrCreate([
'type' => 'doctor',
'created_at' => Carbon::now(),
'updated_at' => Carbon::now(),
]);
UserType::firstOrCreate([
'type' => 'admin',
'created_at' => Carbon::now(),
'updated_at' => Carbon::now(),
]);
但它产生了重复的记录,updateOrCreate() 也是如此。
那么,如何在不重复记录的情况下将新记录添加到同一个播种器类??
【问题讨论】:
-
重置表然后播种?
-
无法从表中删除记录,因为它们是其他表中的外键。 @HorusKol
标签: database laravel eloquent laravel-seeding