在Laravel上播种多个特定数据

时间:2016-02-07 13:02:41

标签: php laravel-5.2 faker

我想使用Laravel上的数据库播种器,使用本地 s3 rackspace 来播种数据库表。但是,如果我使用$faker->randomElement()方法使用这三个特定名称,它只会多次填充相同的名称,这就是我不需要的名称。如果可能,我还想使用s3rackspace存储名称为不同列设置不同的值。

$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 个答案:

答案 0 :(得分:1)

Faker / Provider / Baser.class中存在一个错误,它在randomElement函数中使用了这行代码,由于事实,它在同一实例中反复复制相同的随机元素它正在使用static::关键字

static::randomElements($array, 1);

我会报告它,暂时使用这段代码:

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