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

引言

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

图片

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

代码时间

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

php artisan db:seed

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

pic

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

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

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

php artisan make:seed EventTableSeeder

命令行输出内容:

Seeder created successfully.

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

pic

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

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

$this->call('EventsTableSeeder');

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

php artisan db:seed

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

Seeding: EventTableSeeder

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

php artisan db:seed --class=EventTableSeeder

批量数据填充

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

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

pic

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

pic

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

写在最后

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

Happy coding 😃

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值