数据库填充
生成填充文件:这个里面随便写,循环插入,批量插入,随便玩,复杂点的用模型工厂来快速生成大量数据 php artisan make:seeder UsersTableSeeder
运行填充文件填充数据 php artisan db:seed
或 php artisan db:seed --class=UsersTableSeeder
也可以运行其他填充类,可以将各种数据封装成类,然后在文件 DatabaseSeeder.php
中调用,调用方法如下:
$this->call(UsersTableSeeder::class);
可能需要重新生成Composer自动加载器 composer dump-autoload
采用模型工厂来批量写入测试数据
创建一个模型工厂,并指定数据库模型: php artisan make:factory PostFactory --model=Post
编写需要写入的字段数据:
文件路径地址:\database\factories\RushBuyEventRecords.php
备注:关于更多的Faker数据,请参考以下网址 https://github.com/fzaninotto/Faker https://packagist.org/packages/fzaninotto/faker
内容如下:
<?php
use Faker\Generator as Faker;
$factory->define(App\Models\RushBuyEventRecord::class, function (Faker $faker) {
$idCard = new \App\Common\IdCard();
return [
'unionid' => $faker->unique()->uuid,
'event_id' => mt_rand(1, 3),
'size' => $faker->numberBetween(30, 45),
'city' => $faker->city,
'name' => $faker->firstNameMale,//男性名字
'id_card_number' => $idCard->getIDCard(),
'reserve_time' => $faker->date("Y-m-d H:i:s", "2019-07-01"),
'type' => mt_rand(1, 2),
'reserve_ip' => $faker->ipv4 . ', ' . $faker->ipv4,
'draw_ip' => $faker->ipv4 . ', ' . $faker->ipv4,
'milli_draw_time' => microtime(true),
'mobile' => $faker->phoneNumber,
];
});
调用:文件路径 \database\seeds\RushBuyEventRecords.php
<?php
use Illuminate\Database\Seeder;
use App\Models\RushBuyEventRecord;
class RushBuyEventRecords extends Seeder {
/**
* Run the database seeds.
*
* @return void
*/
public function run() {
$data = factory(RushBuyEventRecord::class)->times(10000)->make();
RushBuyEventRecord::insert($data->makeVisible([])->toArray());
}
}