首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

3分钟短文:造假!Laravel为数据库填充伪数据

引言

在数据库创建之初,并没有什么数据,开发人员手动填充的数据,要等到很久才能有完整的一致性数据。如果能填充一些伪数据,那会是不错的体验。

本文就来说说使用假数据填充数据库。

代码时间

为数据库填充数据,首先在命令行运行以下指令:

php artisan db:seed

没有输出,看上去像是什么都没有发生。其实是有的,我们在目录database/seeds/DatabaseSeeder.php可以看到新创建的文件。文件内容如下图:

什么代码都没有,只是继承了Seeder类,并实现了run()方法。其中可实现的代码逻辑,示例部分给我们注释掉了:

$this->call('UsersTableSeeder::class');

这是一个生成器类,我们现在手动创建一个,使用脚手架指令:

php artisan make:seed EventTableSeeder

命令行输出内容:

Seeder created successfully.

表名文件创建完成,生成的文件在database/seeds/EventTableSeeder.php内,默认模板内代码与上述  DatabaseSeeder.php文件相似,我们手动实现run()方法,并添加逻辑代码:

其中truncate方法会删除原表内所有的记录,并把自增字段的值设置到初始值。然后我们使用模型的create方法 插入两条记录。

这样我们使用了Seeder方法为数据库初始化写入两条记录。接着在DatabaseSeeder.php文件内调用该类:

$this->call('EventsTableSeeder');

因为在同一个命名空间下,所以无需命令空间方式引入。在命令行输入以下指令:

php artisan db:seed

我们手动指定了生成器文件,所以可以看到输出内容:

Seeding:EventTableSeeder

现在检查数据库events表会发现多出了两条数据,正是我们在类文件内声明的。如果生成器类文件比较多, 我们仅仅想指定某一个生成器类文件,可以在命令行指定:

php artisan db:seed--class=EventTableSeeder

批量数据填充

手动造数据是在太累了,要是有伪数据就太好了。没问题,有一个Faker类库,专门为我们提供了随机伪数据的生成方法, 足以满足我们的需求。

我们改造上面的EventTableSeeder类文件的run方法。使用循环语句批量插入数据:

一个for循环顿时解放了我们的重复劳动,太好了!现在使用mysql客户端连接到数据库, 选择数据库并输入以下查询语句:

大家看到了吧,Faker类提供的方法输出了很多无意义的填充数据,没关系,最起码有数据了不是吗?

写在最后

本文简明扼要地介绍了laravel数据库填充所使用的方法,我们可以手动填充, 也可以使用第三方库填充伪数据,效率明显提升很多。也只要准备好了数据, 才能谈得上业务逻辑和接口对接。这些数据也是应用程序的基础,所以很重要。

Happy coding :-)

我是@程序员小助手,专注编程知识,圈子动态的IT领域原创作者

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200930A0I0CT00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券