编写填充器类
php artisan make:seeder UsersTableSeeder
该命令会在 database/seeds 目录下创建一个 UsersTableSeeder 填充器类,初始化代码如下:
<?php
use Illuminate\Database\Seeder;
class UsersTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
}
}
填充器的运行
Laravel 提供了两种方式来运行填充器:一种是独立的填充命令,另一种是在运行迁移命令时通过指定标识选项在创建数据表时填充。
独立的填充命令如下:
php artisan db:seed
php artisan db:seed --class=UsersTableSeeder
上述第一个 Artisan 命令会以 DatabaseSeeder 为入口类,调用该类的 run 方法,你可以将所有对其他填充器的调用定义在该方法中,例如:
$this->call(UsersTableSeeder::class);
这样,就可以一次性调用所有填充器啦。
当然,你也可以通过 --class= 选项指定运行某个填充器类的 run 方法。
此外,在某些时候,你可能希望在运行迁移命令的同时填充测试数据,尤其是在初始化一些演示项目的时候。这可以通过不指定值的 --seed 选项来实现
php artisan migrate --seed
php artisan migrate:refresh --seed
第一条命令用于执行迁移命令时运行填充器类 DatabaseSeeder 填充数据,第二条命令用于回滚所有迁移并重新运行迁移同时填充初始化数据。
创建迁移文件
php artisan make:migration create_users_table --create=users # 创建数据表迁移
php artisan make:migration alter_users_add_nickname --table=users # 更新数据表迁移