laravel faker,種子檔案,資料工廠,資料填充
阿新 • • 發佈:2020-07-20
1、建立填充檔案
php artisan make:seeder UserSeeder
2、修改填充檔案
/**
*管理員 資料填充
*/
public function run()
{
//清空資料表
User::truncate();
//新增模擬資料 100個使用者
factory(User::class,100)->create();
// 規定id=1的使用者名稱為admin
User::where('id',1)->update(['username'=>'admin']);
}
3、修改模型
class User extends Model
{
//守衛
//拒絕新增的欄位
protected $guarded = [];
}
4、生成一個數據工廠
php artisan make:factory UserFactory -m Model/User
5、修改資料工廠生成資料的格式
$factory->define(User::class, function (Faker $faker) {
return [
'username'=>$faker->userName,
'truename'=>$faker ->name(),
'password'=>bcrypt('admin'),
'email'=>$faker->email,
'phone'=>$faker->phoneNumber,
'sex'=>['先生','女士'][rand(0,1)]
];
});
6、修改DatabaseSeeder.php的總呼叫
class DatabaseSeeder extends Seeder
{
/**
* 做資料填充用的
*/
public function run()
{
//呼叫生成管理員的資料表
$this->call(UserSeeder::class);
}
}
7、執行資料填充
php artisan db:seed
注:遷移檔案中欄位可能設定有點短,可能填充不成功,此時,就需要修改一下資料欄位長度,然後執行
php artisan migrate:refresh --seed
php artisan migrate:refresh 是重新執行遷移檔案 加上--seed 是執行遷移檔案並執行資料填充