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
,以便它始終是特定用戶序列中的下一個數字?