简介

为数据库填充预先准备好的数据。

生成填充类

使用 artisan 的 make:seeder 生成填充类:

  1. php artisan make:seeder UserSeeder

生成的填充类在:database / seeds 目录下

编写填充数据

  1. public function run(AdminUser $adminuser) //用的是依赖注入
  2. {
  3. $adminuser->insert([
  4. 'username' => 'admin',
  5. 'password' => Hash::make('admin'),
  6. 'state' => AdminUser::NORMAL
  7. ]);
  8. }

调用其他 Seeders

DatabaseSeeder 类中,使用 call 方法运行其他的填充类,可以将数据填充拆分成多个文件,好处是不会使单个 seeder
变得非常大,只需简单的传递要运行的 seeder 类名称即可:

public function run()
{
    $this->call([
        UsersTableSeeder::class,
        PostsTableSeeder::class,
        CommentsTableSeeder::class,
    ]);
}

运行填充类

  1. 重新生成 composer 的自动加载器

    composer dump-autoload
    
  2. 执行填充类填充数据库 ```php php artisan db:seed

// 使用 —class 指定特定的 填充类 php artisan db:seed —class=UserSeeder

<a name="aQd08"></a>
### 
可以用 `migrate:fresh` 命令来填充数据库,将删除所有的表并重新运行所有迁移,这个命令一般用于重建数据库
> 注意:此方法会重置数据库,清空所有数据,开发上线后可用此命令清空所有测试数据

```php
php artisan migrate:fresh --seed