我正在尝试在Laravel 5.2上播种用户表。我有一个名为 role
的自定义列。我正在使用Faker来播种用户表。但是,我需要使用管理员或客户填充role
列。所以,我传递了一个数组,并返回了参数不匹配错误。
这是我正在尝试的相关代码:
$factory->define(App'User::class, function (Faker'Generator $faker) {
return [
'name' => $faker->name,
'email' => $faker->email,
'password' => 123456,
'role' => ['Administrator', 'Customer'],
'remember_token' => str_random(10),
];
})
我知道它只接受字符串而不是数组。那么,当您想用多个特定数据为数据库设定种子时,您该怎么做。
您可以使用
Faker
来获取随机元素:
$factory->define(App'User::class, function (Faker'Generator $faker) {
return [
'name' => $faker->name,
'email' => $faker->email,
'password' => 123456,
'role' => $faker->randomElement(['Administrator', 'Customer']),
// ^^^^^^^ here ^^^^^^^
'remember_token' => str_random(10),
];
})
我建议使用随机索引生成(在您的情况下为 0 或 1)并通过此索引从可能值数组(["管理员"、"客户"])中检索值。
$i = rand(0, 1);
$roleOptions = ['Administrator', 'Customer'];
$role = $roleOptions[$i];
此外,如果您希望拥有比管理员多得多的用户,则可以查找以下内容: 更改获得随机数的概率