Laravel5.1 如何生成測試數據

laravel有很是方便的方法生成測試用的數據,大概的流程是這樣:php

  1. 前提是咱們的數據庫已經配置好,而且生成了Model和數據表。
  2. artisan控制檯生成一個seeder: php artisan make:seeder xxx(命名自定)
  3. 打開database/factories/ModelFactory.php寫如何生產模型。
  4. 在建立的seeder中調用factory。
  5. artisan控制檯:php artisan migrate --seed

Why? 爲何要這樣生成測試數據?

答:在開發中,數據庫沒有導入真正的數據時 咱們須要使用一些測試數據去測試咱們的項目。laravel

 

這樣生成有什麼好處?

答:很便捷,不用咱們手寫測試數據,節省了大量的時間。數據庫

 

步入正題 如何寫這些代碼?

一、artisan控制檯輸入命令來建立一個seeder:測試

php artisan make:seeder Lessons_table_seeder

輸入好後 這個seeder就在 database/seeds 文件夾中。this

 

二、在database/factories/ModelFactory.php文件中編寫生成數據的邏輯:spa

$factory->define(App\Lesson::class, function (Faker\Generator $faker) {
    return [
        'title' => $faker->sentence,
        'body' => $faker->paragraph,
        'free' => $faker->boolean()
    ];
});

 

三、打開剛剛建立的seeder,調用factory:code

    public function run()
    {
        factory(\App\Lesson::class, 20)->create();
    }

create方法中你能夠本身設置一些屬性。blog

在DatabaseSeeder.php中調用這個seeder:開發

    public function run()
    {
        Model::unguard();

        $this->call('Lessons_table_seeder');

        Model::reguard();
    }

 

四、artisan控制檯中輸入:it

php artisan migrate --seed

而後去檢查你的數據庫吧,測試數據已經生成了。

相關文章
相關標籤/搜索