如何生成測試數據
阿新 • • 發佈:2017-07-04
tab database blog under ner artisan str col eat 這樣生成有什麽好處?
laravel有非常方便的方法生成測試用的數據,大概的流程是這樣:
- 前提是我們的數據庫已經配置好,並且生成了Model和數據表。
- artisan控制臺生成一個seeder: php artisan make:seeder xxx(命名自定)
- 打開database/factories/ModelFactory.php寫如何生產模型。
- 在創建的seeder中調用factory。
- artisan控制臺:php artisan migrate --seed
Why? 為什麽要這樣生成測試數據?
答:在開發中,數據庫沒有導入真正的數據時 我們需要使用一些測試數據去測試我們的項目。
這樣生成有什麽好處?
答:很便捷,不用我們手寫測試數據,節省了大量的時間。
步入正題 如何寫這些代碼?
1、artisan控制臺輸入命令來創建一個seeder:
php artisan make:seeder Lessons_table_seeder
輸入好後 這個seeder就在 database/seeds 文件夾中。
2、在database/factories/ModelFactory.php文件中編寫生成數據的邏輯:
$factory->define(App\Lesson::class, function (Faker\Generator $faker) { return [‘title‘ => $faker->sentence, ‘body‘ => $faker->paragraph, ‘free‘ => $faker->boolean() ]; });
3、打開剛剛創建的seeder,調用factory:
public function run() { factory(\App\Lesson::class, 20)->create(); }
create方法中你可以自己設置一些屬性。
在DatabaseSeeder.php中調用這個seeder:
public function run() { Model::unguard(); $this->call(‘Lessons_table_seeder‘); Model::reguard(); }
4、artisan控制臺中輸入:
php artisan migrate --seed
然後去檢查你的數據庫吧,測試數據已經生成了。
如何生成測試數據