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

Laravel任务注册表单报错:General error:1364字段无默认值

问题排查与解决

核心原因

这种情况大概率是模型的$fillable属性未包含对应字段,导致Laravel的批量赋值机制自动过滤了这些字段,数据库接收到的字段值为null,触发非空约束报错。

具体解决步骤

  • 检查模型批量赋值白名单
    打开任务模型文件(如Task.php),确保$fillable数组包含Type和Priority_id字段,注意字段名要和数据库表完全一致(大小写敏感):

    class Task extends Model
    {
        protected $fillable = [
            // 其他业务字段...
            'Type',
            'Priority_id',
        ];
    }
    
  • 确认批量赋值的使用方式
    检查service或controller中的代码,确保使用批量赋值方法创建/更新模型:

    // 方式1:直接使用create方法
    $task = Task::create($request->all());
    
    // 方式2:fill结合save
    $task = new Task();
    $task->fill($request->all())->save();
    

    避免手动赋值时遗漏字段,或误用非批量赋值方式导致字段未被设置。

  • 统一字段名大小写
    若数据库字段为Type(首字母大写),但请求中传递的是type(小写),Laravel不会自动映射。可在控制器中转换字段名:

    $data = $request->all();
    $data['Type'] = $request->input('type');
    $task = Task::create($data);
    
  • 验证字段传递有效性
    若以上操作仍未解决,可在控制器中验证字段是否正常传递:

    // 检查字段是否存在及对应值
    dd($request->has('type'), $request->input('type'));
    

    确认请求确实携带了有效值,同时检查数据库表的Type和Priority_id字段是否设置了非空约束(若业务允许,可调整为允许null或设置合理默认值)。

内容的提问来源于stack exchange,提问作者mahdi.gh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 09:26:00