📅  最后修改于: 2023-12-03 15:32:34.987000             🧑  作者: Mango
Laravel 工厂是 Laravel 框架提供的一种方便的数据填充解决方案,可以快速地生成模型数据,方便测试和开发。
工厂定义通常位于 database/factories
目录下,以模型名称为文件名。工厂定义可以使用 Faker
随机数据生成器生成各种类型的数据,并使用 Eloquent
模型创建和保存数据。
以下是示例代码:
// database/factories/UserFactory.php
use App\User;
use Faker\Generator as Faker;
$factory->define(User::class, function (Faker $faker) {
return [
'name' => $faker->name,
'email' => $faker->unique()->safeEmail,
'password' => bcrypt('secret'), // 默认密码为 'secret'
'remember_token' => str_random(10),
];
});
在测试或开发中,可以使用 factory
函数创建一个模型实例。可以使用以下代码生成一个新的 User
模型实例:
$user = factory(App\User::class)->make();
也可以使用以下代码向数据库中插入一个新的 User
记录:
$user = factory(App\User::class)->create();
可以使用属性数组覆盖工厂定义中的默认属性:
$user = factory(App\User::class)->states('admin')->make();
// 设置属性数组:
$user = factory(App\User::class)->make([
'name' => 'John Doe',
'email' => 'john@example.com',
]);
Laravel 工厂还支持定义工厂状态,以便更灵活地生成数据。
以下是示例代码:
$factory->state(App\User::class, 'admin', [
'role' => 'admin',
]);
可以使用以下代码生成一个带有 admin
状态的 User
模型实例:
$user = factory(App\User::class)->states('admin')->make();
Laravel 工厂是一个非常有用的数据库填充解决方案,可以方便地生成测试数据和填充开发数据。我们只需要定义工厂,选择需要的状态和属性,然后就可以快速地生成数据,并且不需要手动填充数据。