1. 程式人生 > 實用技巧 >laravel faker,種子檔案,資料工廠,資料填充

laravel faker,種子檔案,資料工廠,資料填充

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 是執行遷移檔案並執行資料填充