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

向数据库传入数据时出现SQLSTATE[HY000]错误:字段'item_name'无默认值

解决SQLSTATE[HY000]: General error: 1364 Field 'item_name' doesn't have a default value错误

这个错误的核心原因是数据库的item_name字段不允许为NULL且未设置默认值,同时你插入数据时没有给该字段传值。以下是具体排查和解决步骤:

  • 检查控制器的数据传递
    确认addConsultation方法里,是否把请求中的item_name值正确传给模型。比如用批量赋值时,要确保$request里包含item_name参数,且代码明确传递了这个字段:

    // 示例:手动指定插入字段
    $consultation = Consultation::create([
        'item_name' => $request->input('item_name'),
        // 其他字段...
    ]);
    

    或者用only方法筛选字段时,要包含item_name:

    Consultation::create($request->only(['item_name', '其他字段1', '其他字段2']));
    
  • 检查模型的批量赋值白名单
    打开你的模型文件,确认$fillable数组里包含item_name,否则Laravel会阻止该字段的批量赋值:

    protected $fillable = ['item_name', '其他需要批量赋值的字段'];
    
  • 修改数据库字段配置
    如果item_name不是必填字段,可以直接调整数据库表结构:

    1. 创建或修改迁移文件,调整字段属性:
      Schema::table('consultations', function (Blueprint $table) {
          // 允许字段为NULL
          $table->string('item_name')->nullable()->change();
          // 或者给字段设置默认值
          // $table->string('item_name')->default('默认内容')->change();
      });
      
    2. 执行迁移使修改生效:
      php artisan migrate
      

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 02:20:15