【发布时间】:2017-12-12 12:20:42
【问题描述】:
对于下面的工厂定义,order 列需要是连续的。已经有一个自动递增的列id。第一行的order 应该从1 开始,每一行的order 应该是下一个数字(1、2、3 等)
$factory->define(App\AliasCommand::class, function (Faker\Generator $faker) {
return [
'user_id' => App\User::inRandomOrder()->first()->id,
'command' => $faker->word,
'content' => $faker->sentence,
'order' => (App\AliasCommand::count()) ?
App\AliasCommand::orderBy('order', 'desc')->first()->order + 1 : 1
];
});
它应该将order 列设置为比前一行多1,但是,这会导致所有行都被分配1。
【问题讨论】:
-
您是否可以为订单字段获取重复值?您拥有的这种解决方案不会阻止竞争条件。
标签: php laravel laravel-5.4 laravel-seeding