You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel Seeder使用rand设置关联用户数为何无法随机?

问题原因

你当前的代码里,rand(1, 3)在链式调用初始化阶段就会执行完毕,只会生成一个固定随机数,之后所有100个Product都会复用这个数值创建关联用户,所以所有产品的关联用户数完全一致。

解决方案

要让每个Product独立生成1-3的随机数,需要把随机数生成逻辑放在**闭包(匿名函数)**里传给hasUsers。闭包会在每个Product创建时触发执行,每次都会重新计算随机数。

修改后的代码:

Product::factory(100)
    ->hasUsers(fn() => rand(1, 3))
    ->create();

如果你的Laravel版本不支持箭头函数,可使用传统匿名函数写法:

Product::factory(100)
    ->hasUsers(function () {
        return rand(1, 3);
    })
    ->create();

内容的提问来源于stack exchange,提问作者panthro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 02:04:59