- 使用
模型工廠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'