laravel中批量填充假数据分为两个部分
- 对要生成假数据的指定模型字段进行赋值
- 批量生成假数据模型
使用artisan命令生成一个新的posts数据表进行演示
php artisan make:migration create_posts_table --create=posts
在迁移文件中,添加字段
Schema::create('posts', function (Blueprint $table) { $table->engine = 'InnoDB'; $table->increments('id'); $table->string('author', 50); $table->string('title', 100); $table->string('category')->default('laravel'); $table->text('content'); $table->timestamps(); $table->index('author'); });
执行数据迁移命令,生成对应的模型文件
php artisan migrate
php artisan make:model Post
在database/factories/ModelFactory.php
中对指定的字段进行赋值
$factory->define(App\Post::class, function (Faker\Generator $faker) { $date_time = $faker->date(). ' ' . $faker->time(); return [ 'author' => $faker->name, 'title' => $faker->title, 'content' => $faker->text, 'created_at' => $date_time, 'updated_at' => $date_time, ]; });
生成对应的seeder文件
php artisan make:seed PostsTableSeeder
在database/seeds/PostsTableSeeder.php
run()方法中写入生成假数据的代码
$posts = factory(Post::class)->times(22)->make(); Post::insert($posts->toArray());
在database/seeds/DatabaseSeeder.php
run()方法中调用PostsTableSeeder类
$this->call(PostsTableSeeder::class);
执行生成数据的artisan命令
pjhp artisan db:seed