Laravel 工厂用户 ID 始终为空
Posted
技术标签:
【中文标题】Laravel 工厂用户 ID 始终为空【英文标题】:Laravel factory user id always null 【发布时间】: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);
【参考方案1】:
请记住,使用该方法您将加载内存中的所有记录,然后随机选择一个以获取您的随机对象。
您可以改进这种直接从数据库中以随机顺序查询一条记录:
$randomUser = User::inRandomOrder()->first();
【讨论】:
尝试将随机用户分配给一个变量,然后提取 ID,但它不起作用。 $randomUser = User::inRandomOrder()->first(); echo dd($randomUser->id); 检查您的型号。也许您的$hidden
配置中包含id
字段。 Check this 了解更多信息。
好的,我发现了问题,我正在使用laracasts.com/discuss/channels/laravel/… 加密用户电子邮件,但显然 Encryptable 特性会阻止整个模型工作
我不明白您的问题与您的实际问题不同。以上是关于Laravel 工厂用户 ID 始终为空的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 验证规则 - 要求字段显式为空,具体取决于另一个字段的值 (type_id)
如何在 laravel 的配置文件工厂中提供唯一的 user_id