目前,在我的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()->user_id,
'body' => $faker->paragraph
];
});
请记住,这会从您的表中获取所有用户数据,然后随机选择一个id。因此,如果您的表有大量数据,则不建议使用。相反,在您的测试用例中,您可以创建一个新用户(通过自己的工厂)并将id分配给从上述工厂生成的Reply对象。
或者,您可以在上面的工厂定义中查询特定用户。
'user_id' => User::where('username', 'like', 'test@user.com')->get()->random()->user_id
如果您在数据库中设置了测试用户,则将避免提取所有用户数据。
它不像'user_id'那样工作:
User::all()->random()->**user_id**
但这就是它的工作原理:
User::all()->random()->**id**