阅读(382)
赞(10)
Laravel 8 编写 Seeders
2021-07-07 09:14:41 更新
运行 Artisan 命令 make:seeder
生成 Seeder,框架生成的 seeders 都放在 database/seeds
目录下:
php artisan make:seeder UserSeeder
seeder 类只包含一个默认方法:run
。这个方法会在执行 db:seed
这个 Artisan 命令 时被调用。在 run
方法里你可以根据需要在数据库中插入数据。你也可以用 查询构造器 或 Eloquent 模型工厂 来手动插入数据。
技巧:使用数据填充时会自动禁用 批量赋值保护。
如下所示,在默认的 DatabaseSeeder
类中的 run
方法中添加一条数据插入语句:
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Str;
class DatabaseSeeder extends Seeder
{
/**
* 执行数据库填充
*
* @return void
*/
public function run()
{
DB::table('users')->insert([
'name' => Str::random(10),
'email' => Str::random(10).'@gmail.com',
'password' => Hash::make('password'),
]);
}
}
技巧:你在
run
的方法签名中可以用类型来约束你需要的依赖。它们会被 Laravel 服务容器 自动解析。