Database 如何在不重复的情况下重新设置数据库种子-Laravel

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(),

我在我的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(),
]
]))

现在,我想在同一个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(),
    ]);