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

Laravel数据库播种时出现列不存在错误,请求排查解决

问题排查与解决

核心错误原因

错误信息明确显示Unknown column 'code ' in 'field list',注意code后带有空格,但你的数据库迁移文件中定义的列是无空格的code,这说明播种时插入的字段名多了一个多余空格,导致数据库无法匹配对应列。

关键问题点

你提供的工厂代码属于User模型(包含name、email等用户字段),并非Medicine模型的工厂文件,这是贴错文件导致的混淆。请找到Database/Factories/MedicineFactory.php文件,按以下步骤修复:

修复步骤

  1. 修正Medicine工厂的字段定义
    打开MedicineFactory.php,确保definition方法返回的数组字段名无多余空格,且与模型$fillable字段匹配:

    public function definition()
    {
        return [
            'price' => $this->faker->randomNumber(),
            'quantity' => $this->faker->randomNumber(),
            'code' => $this->faker->unique()->bothify('????##'), // 生成符合业务格式的code值
        ];
    }
    
  2. 检查播种类的调用逻辑
    打开Database/Seeders/DatabaseSeeder.php,确认调用的是Medicine模型的播种逻辑:

    public function run()
    {
        \App\Models\medicine::factory(10)->create();
    }
    
  3. 额外优化建议(非当前错误,但更合理)
    迁移文件中price和quantity使用string类型不符合业务逻辑,建议改为对应类型:

    $table->decimal('price', 8, 2); // 支持两位小数的价格字段
    $table->integer('quantity'); // 数量字段用整数类型
    
  4. 重新执行播种
    确保迁移已正确执行(若之前有错误可回滚后重新迁移),再执行播种命令:

    php artisan migrate:refresh --seed
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 16:06:27