引言

在开发中,我们需要一些演示数据用来测试我们的程序,怎么样才能快速的生成呢?Laravel给我们提供了简单的方法:模型工厂,利用模型工厂我们可以快速便捷的在数据库生成演示数据。

Seeder填充数据

我们根据不同的需要生成的数据写不同的seeder,然后通过Databaseseeder里面的call方法来运行不同的seeder数据填充的简介大家可以去看文档,我们就直接拿实例来举例吧

我们需要生成一些区域有关的数据:
1.png
我们把和区域有关数据写在AreaTableSeeder文件里面,首先我们先预先写入一些省市区的数据

然后我们就可以利用模型工厂创建这些数据,在run方法下写一个遍历

然后在Databaseseeder里写一个call方法调用AreaTableSeeder

这样当我们用Artisan命令db:seed的时候就会生成以上12条数据了。

模型工厂

上述的方法可以用来填充一些自己编写的数据,但是当我们需要大量的随机数据的时候,就需要用到模型工厂了。

模型工厂其实就是git上 fzaninotto/faker的库,利用这个库我们可以非常简单的创建一大堆模拟数据。

我们在database\factories\ModelFactory.php里写我们的内容。
比如说我们需要生成一些表Article的数据
2.png
我们直接在ModelFactory里写:

这里的$faker->后的方法就是用来生成不同类型数据的,像文章、Url、地址、随机数等等很多,大家可以在faker的git文档里查阅你需要的类型。

然后在Databaseseeder里写

这样当我们用Artisan命令db:seed的时候就会随机生成30条数据了。

总结归纳

当我们需要一些自己写的特定的数据的时候,我们先编写数据,然后遍历循环来创建数据。
当我们需要大量的随机数据的时候,我们就用模型工厂来生成数据。

Tagged:

发表评论

电子邮件地址不会被公开。 必填项已用*标注