gpt4 book ai didi

php - 在 Laravel 中,如何从 Users 表中检索随机 user_id 以生成模型工厂种子数据?

转载 作者:可可西里 更新时间:2023-11-01 12:43:32 26 4
gpt4 key购买 nike

目前,在我的 ModelFactory.php 中,我有:

$factory->define(App\Reply::class, function (Faker\Generator $faker) {
return [
'thread_id' => 1,
'user_id' => 1,
'body' => $faker->paragraph
];
});

我想从已存储在用户表中的用户 ID 之一生成一个随机 user_id。我很困惑,因为我不知道如何正确显示数据输出到代码,我想知道如何让 Laravel 选择一个随机用户 ID 并插入到数据库中。谢谢! :)

最佳答案

试试下面的方法。

use App\User; // Assuming this is your User Model class with namespace.

$factory->define(App\Reply::class, function (Faker\Generator $faker) {
return [
'thread_id' => 1,
'user_id' => User::all()->random()->id,
'body' => $faker->paragraph
];
});

请记住,这会从您的表中获取所有用户数据,然后随机选择一个 ID。所以如果你的表数据量很大,不推荐使用。相反,在您的测试用例中,您可以创建一个新用户(通过其自己的工厂)并将 id 分配给从上述工厂生成的回复对象。

或者,您可以在上述工厂定义中查询特定用户。

'user_id' => User::where('username', 'like', 'test@user.com')->get()->random()->id

如果您在数据库中设置了测试用户,这将避免提取所有用户数据。

关于php - 在 Laravel 中,如何从 Users 表中检索随机 user_id 以生成模型工厂种子数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44102483/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com