用 MySQL Dump 播種

按照之前建立種子的示例進行操作。此示例使用 MySQL Dump 為專案資料庫中的表設定種子。必須在播種前建立該表。

<?php

use Illuminate\Database\Seeder;

class UserTableSeeder extends Seeder
{

    /**
     * Run the database seeds.
     *
     * @return void
     */
     public function run()
     {
         $sql = file_get_contents(database_path() . '/seeds/users.sql');
    
         DB::statement($sql);
      }
}

我們的$ sql 將成為 users.sql 轉儲的內容。轉儲應該有一個 INSERT INTO 語句。你將在哪裡儲存轉儲。在上面的例子中,它儲存在專案目錄\database\seeds 中。使用 laravel 的幫助函式 database_path() 並附加轉儲的目錄和檔名。

INSERT INTO `users` (`id`, `name`, `email`, `password`, `remember_token`, `created_at`, `updated_at`) VALUES
(1, 'Jane', 'janeDoe@fakemail.com', 'superSecret', NULL, '2016-07-21 00:00:00', '2016-07-21 00:00:00'),
(2, 'John', 'johnny@fakemail.com', 'sup3rS3cr3t', NULL, '2016-07-21 00:00:00', '2016-07-21 00:00:00');

一旦 Seeder 執行,DB::statement($sql) 將執行插入。與前面的示例一樣,你可以將 UserTableSeeder 放在 laravel 提供的 DatabaseSeeder 類中:

<?php

use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        $this->call(UserTableSeeder::class);
    }
}

並從專案目錄 php artisan db:seed 中的 CLI 執行。或者你可以使用 php artisan db:seed --class=UsersTableSeeder 為單個類執行 Seeder