composer require 'liryan/dbfiller' 'dev-master'
在config/app.php中添加provider
providers=[
...
Dbfiller\DBFillerProvider::class,
],
在Lumen框架中,修改bootstrap/app.php
...
$app->register(Dbfiller\DBFillerProvider::class);
laravel运行命令,生成config/dbfiller.php
php artisan vendor:publish
Lumen中生成配置文件复制到项目config目录,不存在就新建
cp vendor/liryan/dbfiler/src/config/dbfiller.php config/
根据数据库修改此文件 然后运行
php artisan mysql.filler
测试format
php artisan mysql.filler 'format' --count=1
<?php
return[
'表1'=>
[
'total'=>'要生成多少数据',
'key'=>'此表的主键字段名字,默认为id',
'define'=>[
'字段名1'=>['format'=>'格式说明','from'=>'引用数据']
'字段名2'=>['format'=>'格式说明','from'=>'引用数据']
...
]
],
'表2'=>
[
'total'=>'要生成多少数据',
'key'=>'此表的主键字段名字,默认为id',
'define'=>[
'字段名1'=>['format'=>'格式说明','from'=>'引用数据']
'字段名2'=>['format'=>'格式说明','from'=>'引用数据']
//不写字段,则会按照数据库中定义的数据类型自动生成
...
]
],
...
];
字符串格式:[%|#][max-min][u/d/s/f/p]
解释 % 随机数据 # 唯一数据 max-min: 数字:最大位数-最小位数 字符:字符个数 浮点:总位数,小数位数
u/d/s/f/p:
u:无符号整数
d:有符号整数
s:字符串
f:有符号浮点数
p:无符号浮点
` 例如邮件字段格式: 'format'=>'#16-4s@%20-1s.%3-2s' 唯一的用户名(4-16个字符) @ 域名1-20字符,后缀2-3字符
闭包格式:直接传递一个闭包函数,则数据调用你的闭包函数生成
例如
'format'=>function($row){ //$row :目前生成的数据集,值传递,不要修改,在字段需要与字段产生关系的时候调用
return mt_rand(time()-30*24*3600,time()) //时间为最近一年某一刻
}
引用数据说明:
格式:[%|#].[表名].[字段名]
%:可以重复[一对多],#:不重复[两个表一一对应],
如 from="#.member.id' 表示此字段的值来自member表中的id字段,并且是顺序取值
return [
'member'=>[
'total'=>10000,
'key'=>'id',
'define'=>[
'avatar'=>['format'=>'http://%8-6s.com/%6s/%10-5s.jpg'],
'name'=>['format'=>'%16-4s'],
],
],
'address'=>[
'total'=>5000,
'key'=>'id',
'define'=>[
'userid'=>['format'=>'',from=>'#.member.id'] //数据来自上面member表单字段,member一定要先生成
'address'=>['format'=>'%32-16s'],
'postcode'=>['format'=>function($row){
$table=[100012,100013,100023,200010]; //随机返回一个数据
return $table[mt_rand(0,count($table)-1)];
}],
],
],
];
QQ:79509281