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 是执行迁移文件并执行数据填充

 

posted @ 2020-07-20 15:11  养猪至富  阅读(275)  评论(0)    收藏  举报