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
相关产品推荐
相关产品推荐

