0
我在User
和Post
之间有一对多的关系。我正在使用数据库播种器和工厂来生成假数据。我想提供与下表相似的数据。在Laravel工厂使用型号
用户
user_id | name
------- | ------
1 | Tim
后
post_id | FK:user_id | order
--------|--------------|-------
1 | 1 | 0
2 | 1 | 1
3 | 1 | 2
4 | 1 | 3
要做到这一点我创建了一个工厂,选择一个随机的用户并计算与该用户相关联的帖子数量
$factory->define(App\Post::class, function (Faker\Generator $faker) {
$user = App\User::inRandomOrder()->firstOrFail();
$order = Post::where(['user_id' => $user->user_id])->count();
return [
'user_id' => $user->user_id,
'order' => $order,
];
});
播种2后期制作。
post_id | FK:user_id | order
--------|--------------|-------
1 | 1 | 0
2 | 1 | 0
播种2个
3 | 1 | 2
4 | 1 | 2
它看起来对我说,Laravel运行查询之前产生的所有INSERT语句。所以Post::where(['user_id' => $user->user_id)->count();
不会按预期增加。
我该如何增加Post.order
,以便它始终是特定用户序列中的下一个数字?