Database 如何在不重复的情况下重新设置数据库种子-Laravel
我在我的laravel 5.2应用程序中有这个播种器类:Database 如何在不重复的情况下重新设置数据库种子-Laravel,database,laravel,eloquent,laravel-seeding,Database,Laravel,Eloquent,Laravel Seeding,我在我的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(),
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(),
]
]))
现在,我想在同一个seeder类中添加另一个记录。我尝试使用firstOrCreate():
但是它创建了重复的记录,updateOrCreate()也是如此
那么,如何在不复制记录的情况下向同一种子类添加新记录呢?我认为
first或create
方法不能按预期工作,因为上一条记录的时间与新查询的时间不一样。因此,如果您从查询中删除在处创建的和在
处更新的,如下所示:
UserType::firstOrCreate(['type'=>'patient'])代码>
现在,它应该起作用了。此外,在
处创建的和在
处更新的将自动通过first或create
方法进行管理 我认为firstOrCreate
方法没有按预期工作,因为上一条记录的时间与新查询的时间不一样。因此,如果您从查询中删除在
处创建的和在
处更新的,如下所示:
UserType::firstOrCreate(['type'=>'patient'])代码>
现在,它应该起作用了。此外,在
处创建的和在
处更新的将自动通过first或create
方法进行管理 重置表,然后进行种子设定?无法从表中删除记录,因为它们是其他表中的外键@HorusKolreset表,然后seed?无法从表中删除记录,因为它们是其他表中的外键@HorusKolYes,它在删除创建的和更新的后工作。非常感谢。是的,在删除已创建的和已更新的后,它仍在工作。谢谢。
}
}
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(),
]);