Я хочу засеять таблицу базы данных, используя локальные, s3 и rackspace, используя сеялку базы данных на Laravel. Однако, если я использую это три конкретных имени с $faker->randomElement()
он просто заполняет одно и то же имя несколько раз и то, что мне не нужно. Если возможно, я также хочу установить другое значение для другого столбца, используя rackspace
хранилища s3
или rackspace
.
$factory->define(App\Storage::class, function (\Faker\Generator $faker) {
return [
'storage' => $faker->randomElement(['s3', 'local', 'rackspace']),
's3-key' => null,
's3-secret' => null,
's3-region' => null,
's3-bucket' => null,
'rackspace-username' => null,
'rackspace-key' => null,
'rackspace-container' => null,
'status' => 'active'
];
})
Какой был бы лучший способ достичь этого?
В Faker/Provider/Baser.class есть ошибка, она использует эту строку кода внутри функции randomElement
которая randomElement
дублирует один и тот же случайный элемент для одного и того же экземпляра из-за того, что использует static::
keyword
static::randomElements($array, 1);
Я расскажу об этом, на данный момент использую этот кусок кода:
$faker->randomElements(['s3', 'local', 'rackspace'],1)[0]
s3-key
или другой параметр специально дляs3
илиrackspace
.