- 使用
模型工厂Factory
来填充数据
- 生成对应数据表的模型文件
php artisan make:model Models/模型名
,一般为单数形式 - 生成模型工厂文件
php artisan make:factory 工厂名
,工厂名一般是模型名称+Factory
,大驼峰命名,如ManagerFactory
<?php
// 引入模型文件
use App\Models\Manager;
use Faker\Generator as Faker;
// 修改为指定的模型
$factory->define(Manager::class, function (Faker $faker) {
return [
'username' => $faker->name,
'password' => bcrypt('123456'),
'gender' => rand(1,3),
'mobile' => $faker->phoneNumber,
'email' => $faker->unique()->email,
'role_id' => rand(1,6),
'created_at' => date('Y-m-d H:i:s',time()),
'status' => rand(1,2)
];
});
- 生成
Seeder
文件
php artisan make:seeder ManagerSeeder
<?php
// 引入模型文件
use \App\Models\Manager;
use Illuminate\Database\Seeder;
class ManagerTableSeeder extends Seeder
{
public function run()
{
// 生成10条测试数据
$managers = factory(Manager::class)->times(10)->make();
// 添加到数据库
Manager::insert($managers->toArray());
}
}
- 执行填充
php artisan make:refresh
重置数据库(可以不用这一步)
php artisan db:seed ---class=ManagerTableSeeder
执行数据填充
- 注 :
如果想要填充的数据本土化,则需要在
config/app.php
文件中的faker_locale
选项设置为自己想要的语言(前提是laravel中已经安装了该语言),如汉语则可以设置为faker_locale = 'zh_CN'