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

而后去检查你的数据库吧,测试数据已经生成了。

相关文章
相关标签/搜索