laravel5中使用faker生成模拟数据

Posted iaknehc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了laravel5中使用faker生成模拟数据相关的知识,希望对你有一定的参考价值。

环境:
laravel5.1

第一步:安装扩展包
网址:https://github.com/fzaninotto/Faker
使用composer安装,命令如下所示
composer require fzaninotto/faker

第二步:编辑laravel中的模型工厂

 1 vim database/factories/ModelFactory.php
 2 
 3   <?php
 4   
 5   $factory->define(App\\User::class, function (Faker\\Generator $faker) {
 6       return [
 7           \'name\' => $faker->name,    //用户名
 8           \'email\' => $faker->safeEmail,     //邮箱
 9           \'age\' => $faker->numberBetween(10,120),   //年龄
10           \'account\' => $faker->bankAccountNumber,   //账户
11           \'address\'=> $faker->address               //地址
12       ];
13   });

第三步:编辑User模型
这一步也可以不需要,由于我的user表中没有添加created_time和updated_time字段,所以要将user.php修改一下

 1 vim app/Model/User.php
 2 
 3 添加一行
 4 
 5 public $timestamps = false;
 6 
 7 另附上user表建表语句
 8 
 9 mysql> show create table user \\G
10 *************************** 1. row ***************************
11        Table: user
12 Create Table: CREATE TABLE `user` (
13   `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
14   `name` varchar(32) NOT NULL DEFAULT \'\',
15   `age` int(10) unsigned DEFAULT NULL,
16   `email` varchar(32) NOT NULL DEFAULT \'\',
17   `account` varchar(64) NOT NULL DEFAULT \'\',
18   `address` varchar(64) NOT NULL DEFAULT \'\',
19   PRIMARY KEY (`id`)
20 ) ENGINE=InnoDB AUTO_INCREMENT=101 DEFAULT CHARSET=utf8
21 1 row in set (0.00 sec)
22 
23 mysql>

第四步:添加一个路由访问模型工厂生成数据

1 vim app/Http/routes.php
2 
3   Route::get(\'/createuser\',function(){
4           //$user = factory(App\\User::class)->make();   //生成数据对象,但没有添加到数据库
5           $user = factory(App\\User::class,100)->create();    //生成数据并添加到数据库,factory第一个参数是数据模型,第二个参数是生成数据数量100条
6 
7  });

第五步:访问路由,生成数据表中的数据如下图所示

以上是关于laravel5中使用faker生成模拟数据的主要内容,如果未能解决你的问题,请参考以下文章

Python使用FaKer模拟数据!!!

python之模拟数据Faker

随机生成测试数据<faker模块的基本使用;

Faker:Python的伪造数据生成器

使用python包faker生成仿真数据

Python-Faker