创建 Seeder

要创建 Seeder,你可以使用 make:seeder Artisan 命令。生成的所有 Seeder 都将放在 database/seeds 目录中。

$ php artisan make:seeder MoviesTableSeeder

生成的 Seeder 将包含一种方法:run。你可以使用此方法将数据插入数据库。

<?php

use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;

class MoviesTableSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        App\Movie::create([
            'name' => 'A New Hope',
            'year' => '1977'
        ]);

        App\Movie::create([
            'name' => 'The Empire Strikes Back',
            'year' => '1980'
        ]);
    }
}

你通常希望DatabaseSeeder 类中呼叫所有 Seeder。

完成编写播种器后,请使用 db:seed 命令。这将运行 DatabaseSeederrun 功能。

$ php artisan db:seed

你还可以指定运行特定的播种器类,以使用 --class 选项单独运行。

$ php artisan db:seed --class=UserSeeder

如果要回滚并重新运行所有迁移,然后重新设置:

$ php artisan migrate:refresh --seed

migrate:refresh --seed 命令是这三个命令的快捷方式:

$ php artisan migrate:reset     # rollback all migrations
$ php artisan migrate           # run migrations
$ php artisan db:seed           # run seeders