Множество специфических данных семян на Laravel

1

Я хочу засеять таблицу базы данных, используя локальные, 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'
    ];
})

Какой был бы лучший способ достичь этого?

  • 2
    попробуйте это и посмотрите, есть ли у вас тот же результат: $ faker-> randomElements (['s3', 'local', 'rackspace'], 1) [0]
  • 1
    Это добилось цели. Тем не менее, не понял, как это работает. Кроме того, что было бы, когда я хочу установить s3-key или другой параметр специально для s3 или rackspace .
Теги:
faker
laravel-5.2

1 ответ

1
Лучший ответ

В Faker/Provider/Baser.class есть ошибка, она использует эту строку кода внутри функции randomElement которая randomElement дублирует один и тот же случайный элемент для одного и того же экземпляра из-за того, что использует static:: keyword

static::randomElements($array, 1);

Я расскажу об этом, на данный момент использую этот кусок кода:

$faker->randomElements(['s3', 'local', 'rackspace'],1)[0]

Ещё вопросы

Сообщество Overcoder
Наверх
Меню