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

Laravel 9中如何替换废弃的factory()函数?

Laravel 9 替换全局 factory() 函数的解决方案

修改后的代码(推荐方式)

public function run(Faker $faker)
{
    Task::factory()
        ->count($faker->numberBetween(25, 50))
        ->create();
}

替代写法(直接调用工厂类)

use Database\Factories\TaskFactory;

public function run(Faker $faker)
{
    TaskFactory::new()
        ->count($faker->numberBetween(25, 50))
        ->create();
}

必要前提

确保你的Task模型引入了HasFactory trait,否则无法使用Task::factory()方法:

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Task extends Model
{
    use HasFactory;
    // 模型其他代码
}

原因说明

Laravel 9 移除了全局的factory()辅助函数,统一采用类式工厂模式,需要通过模型关联的工厂方法或直接实例化工厂类来生成测试数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 23:50:40