数据库填充

生成填充文件:这个里面随便写,循环插入,批量插入,随便玩,复杂点的用模型工厂来快速生成大量数据 php artisan make:seeder UsersTableSeeder

运行填充文件填充数据 php artisan db:seedphp 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());
	}
}