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

Laravel 9 新增表字段无法保存数据问题排查求助

无法向questions表的rule字段存入数据的原因分析

导致数据无法保存的核心问题有三个:

1. 控制器字段名拼写错误

你在store方法的create数组里,使用的键名是rules,但数据库中新增的字段实际是rule(单数形式),两者不匹配导致数据无法对应存入:

// 错误写法
Question::create([
    // ...其他字段
    'rules' => $request->rule, // 键名应为'rule'
]);

// 正确写法
Question::create([
    // ...其他字段
    'rule' => $request->rule,
]);

2. Textarea标签的value属性无效

HTML的<textarea>标签不支持通过value属性设置默认内容,正确的做法是把默认值放在标签的开闭标签之间,你的代码里的value="{{old('rule')}}"不会生效:

<div class="form-group">
    <label>Rules:</label>
    <textarea name="rule" id="rule" class="form-control">{{old('rule')}}</textarea>
    
    @error('rule')
        <small class="text-danger">{{$message}}</small>
    @enderror
</div>

3. 需确认模型的批量赋值权限

Laravel的create方法依赖模型的$fillable属性允许批量赋值,你需要确保Question模型中已将rule字段加入$fillable数组:

class Question extends Model
{
    protected $fillable = [
        'title',
        'slug',
        'evaluation_id',
        'type',
        'rule', // 必须添加此字段
        // ...其他允许批量赋值的字段
    ];
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 11:05:26