Laravel学习笔记(8)利用SEEDER或者模型工厂批量导入数据

  1. 使用seeder插入数据

生成UserSeeder文件

	artisan make:seeder UserSeeder

在UserSeeder文件中创建数据

    public function run()
    {
        \App\User::create(['name'=>'test', 'email'=>'[email protected]', 'password'=>bcrypt(123465)]);
    }

在DatabaseSeeder文件中添加运行代码

    $this->call(UserSeeder::class);

执行Seeder文件向数据库导入数据

	artisan db:seed
  1. 使用模型工厂(factory)批量追加数据

生成模型工厂(可以参考默认UserFactory),其中faker是开源类库,能够生成随机数据

	# 创建模型工厂
	php artisan make:factory PostFactory
	
	# 配置模型
	use Faker\Generator as Faker;
	
	$factory->define(App\Models\User::class, function (Faker $faker) {
	    return [
	        'username' => $faker->unique()->username,
	        'email' => $faker->unique()->safeEmail,
	        'mobile' => $faker->unique()->phoneNumber,
	        'password' => bcrypt('123456'),
	        'nickname' => $faker->unique()->name,
	        'reg_ip' => app('request')->ip(),
	        'last_login_ip' => app('request')->ip(),
	        'remember_token' => str_random(10),
	    ];
	});

生成数据

	# 进入命令行
	php artisan tinker
	
	# 在命令行中
	# 生成测试数据但不写入数据库
	factory(App\Models\User::class, 5)->make();
	# 生成的测试数据并写入数据库
	factory(App\Models\User::class, 5)->create();

	PS:或者在DatabaseSeeder文件中写入后运行也可以,参考1

生成中文数据

	# 配置 app.php 添加以下配置项
	'faker_locale' => 'zh_CN'
  1. 重置数据表(让ID从头开始)
	artisan migrate:fresh

重置并执行填充

	artisan migrate:fresh --seed
发布了40 篇原创文章 · 获赞 0 · 访问量 785

猜你喜欢

转载自blog.csdn.net/qj4865/article/details/104181724
今日推荐