Php 在Laravel上播种多个特定数据

Php 在Laravel上播种多个特定数据,php,laravel-5.2,faker,Php,Laravel 5.2,Faker,我想通过使用Laravel上的数据库播种器,使用local、s3和rackspace对数据库表进行播种。但是,如果我在$faker->randomElement()方法中使用这三个特定的名称,它只会多次填充相同的名称,而这正是我不需要的。如果可能,我还希望使用s3或rackspace存储名称为不同的列设置不同的值 $factory->define(App\Storage::class, function (\Faker\Generator $faker) { return [

我想通过使用Laravel上的数据库播种器,使用locals3rackspace对数据库表进行播种。但是,如果我在
$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'
    ];
})

实现这一点的最佳方法是什么?

Faker/Provider/Baser.class中有一个bug,它在
randomElement
函数中使用这行代码,该函数在同一实例中反复复制同一个随机元素,因为它使用的是
static::
关键字

static::randomElements($array, 1);
我将对此进行报告,目前使用以下代码:

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

试试这个,看看你是否得到了相同的结果:$faker->randoments(['s3','local','rackspace'],1)[0]。然而,我不明白这是怎么回事。另外,当我想为
s3
rackspace
专门设置
s3