【问题标题】:Laravel factory user id always nullLaravel 工厂用户 ID 始终为空
【发布时间】:2020-02-04 07:40:46
【问题描述】:

当尝试在工厂中获取随机用户 ID 时,它总是返回 null,尽管 DB 包含 50 用户(通过 User 工厂创建)。

'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 )

总是返回null

【问题讨论】:

  • 你试过这样吗? dd((User::all()->random())->id);

标签: php laravel laravel-migrations laravel-6


【解决方案1】:

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

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

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

【讨论】:

  • 尝试将随机用户分配给一个变量,然后提取 ID,但它不起作用。 $randomUser = User::inRandomOrder()->first(); echo dd($randomUser->id);
  • 检查您的型号。也许您的$hidden 配置中包含id 字段。 Check this 了解更多信息。
  • 好的,我发现了问题,我正在使用laracasts.com/discuss/channels/laravel/… 加密用户电子邮件,但显然 Encryptable 特性会阻止整个模型工作
  • 我不明白您的问题与您的实际问题不同。
猜你喜欢
  • 1970-01-01
  • 2019-12-28
  • 2015-03-25
  • 2021-07-29
  • 2016-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多