根据列值设置将其他列设置为相同类型 - Laravel Faker

时间:2017-12-13 02:09:31

标签: php laravel-5.5 faker laravel-seeding

我在Laravel 5.5项目中使用Faker伪造一些数据。 我遇到了这个问题,我需要在faker中设置两个与" live"相同的值。生成的列。这就是我的意思:

$factory->define(App\File::class, function (Faker $faker) {
    return [
        'identifier' => uniqid(),
        'user_id' => App\User::all()->random()->id,
        'title' => $faker->sentence($nbWords = 4),
        'overview_short' => $faker->sentence,
        'overview' => $faker->text($maxNbChars = 500),
        'price' => $faker->randomFloat($nbMaxDecimals = 2, $min = 0, $max = 125),
        'live' => rand(0, 1),       // So if "live" = 1
        'approved' => rand(0, 1),   // Then I want "approved" = 1
        'finished' => rand(0, 1),   // And "finished" = 1
    ];
})

所以如果" 生活"列设置为0,然后我想要" 已批准"和" 完成"列设置为0,或其他方式。 " 直播"列可以是随机的,0或1

有没有办法在Faker中这样做?

// ---------------

知道了,

    $live = rand(0, 1);

    return [
        // .......
        'live' => $live,
        'approved' => $live,
        'finished' => $live
    ];

1 个答案:

答案 0 :(得分:1)

你应该将随机变量存储到$live中,并根据值设置'approved''finished'