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

Laravel8修改Factory后执行db:seed报Undefined variable: title如何解决

错误原因

适配Laravel 8版本的工厂类新写法时,删除了原代码中$title变量的定义逻辑,但slug字段赋值时仍在调用未定义的$title变量,因此运行数据填充时会抛出Undefined variable: title错误。
另外原旧代码还存在冗余问题:已经提前生成了$title变量,返回的title字段值却又重新调用了一次faker->sentence,会导致title和slug对应的文本不一致。

修复方案

在definition方法内重新定义$title变量,同时复用该变量给title、slug两个字段赋值即可,修复后的完整代码如下:

public function definition()
{   
    // 提前生成title变量,两个字段复用保证文本对应
    $title = $this->faker->sentence;
    return [
        'title' => $title,
        'slug' => Str::slug($title),
    ];
}

如果工厂类顶部未引入Str门面,需要补充导入语句:
use Illuminate\Support\Str;
修改完成后重新运行php artisan db:seed命令即可正常执行数据填充。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 08:27:02