说明
以前我们总是手动的填充假数据,例如在excel表用连接所要的列生成所有的SQL语句,扔到数据库里运行。
现在 Seeder & Faker 能很方便地为我们生成假数据。
所有的seeder文件在 database/seeds目录下。
Seeder
-
DatabaseSeeder.php
这个文件只有run()方法,当执行 php artisan db:seed的时候会执行这个方法。 如果要调用其它的Seeder, 需要手动增加代码, 例如: $this->call(AuthorTableSeeder::class);
-
创建seeder文件
php artisan make:seeder AuthorTableSeeder
-
seeder文件 seeder文件只有一个方法: run()
-
运行seeder php artisan db:seed php artisan db:seed —class=AuthorsTableSeeder
-
重建所有表结构和填充假数据 php artisan migrate:refresh —seed
Faker
-
github地址:
https://github.com/fzaninotto/Faker
-
composer安装
composer require fzaninotto/faker 或者 vim composer.json "require": { "fzaninotto/faker": "dev-master" }, composer self-update composer update
-
编写seeder
生成中文姓名, 中文的地址 public function run() { DB::table('authors')->truncate(); $faker = Faker\Factory::create('zh_CN'); $faker->addProvider(new Faker\Provider\zh_CN\Address($faker));
for ($i=0; $i<100; $i++) {
DB::table('authors')->insert([ 'username' => $faker->name, 'address' => $faker->address, ]); } }
#####执行seed
php artisan db:seed