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
然后去检查你的数据库吧,测试数据已经生成了。
时间: 2024-10-09 21:10:18