Eloquent创建记录时session_id字段为空的问题排查
问题原因分析
问题出在模型的$fillable属性定义错误:
你当前的$fillable将所有字段合并成了一个字符串元素:
protected $fillable = ['width, height, direction_id, media_id, coating_id, shape_id, amount, qty, session_id'];
这种写法会让Laravel误认为只有一个名为width, height, direction_id, media_id, coating_id, shape_id, amount, qty, session_id的字段是可填充的,而非多个独立字段。session_id并没有被正确加入可填充列表,因此使用create()方法时,该字段会被Laravel的批量赋值保护机制过滤,最终导致数据库中该字段为空。
修复方法
将$fillable改为每个字段作为数组的独立元素:
protected $fillable = [ 'width', 'height', 'direction_id', 'media_id', 'coating_id', 'shape_id', 'amount', 'qty', 'session_id' ];
调整后Laravel就能正确识别每个可填充字段,create()方法中的session_id值会被正常写入数据库。
内容的提问来源于stack exchange,提问作者FabricioG
相关产品推荐
相关产品推荐

