数据填充
最后更新于:2022-04-01 15:13:07
Laravel 可以简单的使用 `seed` 类,填充测试数据到数据库。所有的 `seed` 类放在 `database/seeds` 目录下。可以使用任何你想要的类名称,但是应该遵守某些大小写规范,如 `UserTableSeeder` 之类。默认已经有一个 `DatabaseSeeder` 类。在这个类里,使用 `call` 方法执行其他的 `seed` 类,让你控制填充的顺序。
## Seed 类例子
~~~
class DatabaseSeeder extends Seeder {
public function run()
{
$this->call('UserTableSeeder');
$this->command->info('User table seeded!');
}
}
class UserTableSeeder extends Seeder {
public function run()
{
DB::table('users')->delete();
User::create(['email' => 'foo@bar.com']);
}
}
~~~
要执行数据填充,可以使用 Artisan CLI 的 db:seed 命令:
~~~
php artisan db:seed
~~~
默认 `db:seed` 命令会执行 `DatabaseSeeder`,可以使用它来调用其他 `seed` 类,不过,也可以使用 `--class` 参数指定要单独执行的类:
~~~
php artisan db:seed --class=UserTableSeeder
~~~
你也可以使用 `migrate:refresh` 命令填充数据,它会回滚并且再次执行所有迁移:
~~~
php artisan migrate:refresh --seed
~~~