我有用户迁移:
$table->enum('type',['seller','buyer'])->default('seller');
Run Code Online (Sandbox Code Playgroud)
我想在使用ModelFactory时如何获得随机价值卖家或买家?
$factory->define(App\User::class, function (Faker\Generator $faker) {
static $password;
return [
'firstName' => $faker->name,
'lastName' => $faker->name,
'username' => $faker->unique()->username,
'email' => $faker->unique()->safeEmail,
'password' => md5('user123'),
'bio' => $faker->sentence(3, true),
'type' => ???,
];
});
Run Code Online (Sandbox Code Playgroud)
San*_*esh 38
利用randomElement方法
'type' => $faker->randomElement(['seller', 'buyer']),
Run Code Online (Sandbox Code Playgroud)
Laravel 版本 >= 5.6
use Illuminate\Support\Arr;
$array = [1, 2, 3, 4, 5];
$random = Arr::random($array);
// 4 - (retrieved randomly)
"type" => Arr::random($array);
Run Code Online (Sandbox Code Playgroud)
万一有人正在使用较新版本的 Laravel 和 PHP 寻找这个问题的答案,您可以enum像这样使用 PHP 中的:
<?php
namespace App\Enums;
enum UserTypeEnum: string
{
case SELLER = 'seller';
case BUYER = 'buyer';
}
Run Code Online (Sandbox Code Playgroud)
然后你的工厂将如下所示:
<?php
namespace Database\Factories;
use App\Enums\UserTypeEnum;
use Illuminate\Database\Eloquent\Factories\Factory;
class TaskFactory extends Factory
{
public function definition()
{
return [
'firstName' => fake()->firstName,
'lastName' => fake()->lastName,
'username' => fake()->unique()->username,
'email' => fake()->unique()->safeEmail,
'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password,
'bio' => fake()->sentence(3, true),
'type' => fake()->randomElement(UserTypeEnum::cases()),
];
}
}
Run Code Online (Sandbox Code Playgroud)
而且,如果您的type专栏是,您也可以拥有类似的nullable播种机。typefake()->randomElement([...UserTypeEnum::cases(), null])
| 归档时间: |
|
| 查看次数: |
10811 次 |
| 最近记录: |