Laravel 工厂用户 ID 始终为空

Laravel factory user id always null

当试图在工厂中获取随机用户 ID 时,尽管数据库包含 50 个用户(通过 User 工厂创建),它总是 returns null .

'user_id' => User::all()->random()->id

我试图显示检索到的资源:

dd(User::all()->random())

结果和预期的很一致

App\User^ {#num
  #fillable: array:9 []
  ...
  #attributes: array:14 [
    "id" => 25
  ...
  ]
}

但是另一种方法:

dd( User::all()->random()->id )

总是 returns null.

请记住,使用该方法是将所有记录加载到内存中,然后随机选择一个以获取随机对象。

您可以改进直接从数据库中以随机顺序查询一条记录:

$randomUser = User::inRandomOrder()->first();