牛骨文教育服务平台(让学习变的简单)

数据填充

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