建立 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