- 使用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
- 使用模型工厂(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'
- 重置数据表(让ID从头开始)
artisan migrate:fresh
重置并执行填充
artisan migrate:fresh --seed