填充器保存于
Laravel项目根目录 > database > seeds
参考文档:[ Laravel 5.6 文档 ] 数据库操作 —— 数据填充
创建填充器
要创建填充器,可以使用 artisan 命令提供的 make:seeder 方法
- 填充器名称的约定写法: 大写表名+TableSeeder
- 填充器的默认保存目录为database > seeds, 因此可以不区分目录
``php // 会在database/seeds目录中创建填充器PaperTableSeeder` php artisan make:seeder PaperTableSeeder
// 创建成功反馈参考信息 Seeder created successfully.
创建的填充器代码如下:```php<?phpuse Illuminate\Database\Seeder;class PaperTableSeeder extends Seeder{/*** Run the database seeds.** @return void*/public function run(){// 在该方法中完成数据的插入}}
执行填充器
要执行填充器,可以使用 artisan 命令提供的 db:seed 方法
// 填充PaperTableSeeder的run()方法, 执行数据插入
php artisan db:seed --class=PaperTableSeeder
// 无执行成功的反馈信息
- 执行种子文件的时候需要指定要执行的种子文件名, 不需要后缀
PaperTableSeeder文件的run()方法实现如下
public function run()
{
// 模拟数据
$data = [
[
'paper_name' => 'iOS进阶',
'start_time' => strtotime('+7 days'),
'duration' => '120',
],
[
'paper_name' => 'PHP进阶',
'start_time' => strtotime('+7 days'),
'duration' => '120',
]
];
// 建议使用DB来写入新数据, 不需要引入DB即可直接使用
DB::table('paper') -> insert($data);
}
生成伪装数据
使用 fzaninotto/faker 库来生成伪装数据。Laravel自带该库,不需要独立安装
// 创建Faker实例
$faker = Faker\Factory::create();
// faker默认返回 en_US 的数据格式, 因此要使用中文的本地化配置 zh_CN
$faker = Faker\Factory::create("zh_CN");
$data = [
'username' => $faker->userName, // 生成用户名
'password' => bcrypt('123456'), // 使用Laravel框架内置的bcrypt方法加密密码
'gender' => rand(1, 3), // 随机性别
'mobile' => $faker->phoneNumber,
'email' => $faker->email,
'role_id' => rand(1, 6), // 角色id
'created_at' => date('Y-m-d H:i:s', time()), // 创建时间
'status' => rand(1, 2), // 帐号状态
];
