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

Я хочу заполнить таблицу базы данных, используя local, s3 и rackspace, используя сидра базы данных на Laravel. Однако, если я использую эти три конкретных имени с $faker->randomElement() метод это просто заполнить одно и то же имя несколько раз, и это то, что мне не нужно. Если возможно, я также хочу установить другое значение для другого столбца, используя 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'
    ];
})

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

1 ответ

Решение

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

static::randomElements($array, 1);

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

$faker->randomElements(['s3', 'local', 'rackspace'],1)[0]
Другие вопросы по тегам