Maatexcel导入自定义附加字段值无法写入数据库问题排查
Maatexcel导入自定义字段无法写入数据库的排查点
模型未配置字段白名单
如果你用的是Laravel框架(Maatexcel基于Laravel),模型默认通过$fillable控制可批量赋值的字段。检查PgImport模型的$fillable属性,确保from和to被添加进去,否则即使传入值也会被框架过滤,无法写入数据库。导入逻辑未将附加字段绑定到模型
虽然构造函数传入了$from和$to且能正常打印,但如果在model()方法里没有把这两个值赋值给模型实例,数据自然不会被写入。比如要确保代码类似这样:public function model(array $row) { return new PgImport([ // 基础字段映射 'username' => $row['username'], 'email' => $row['email'], // 绑定自定义附加字段 'from' => $this->from, 'to' => $this->to, ]); }数据库字段异常
确认数据库对应表中存在from和to字段,且字段类型与传入值匹配。比如你传入的是日期格式字符串,但字段设为整数类型,会导致写入失败;或者字段被设为非空但传入值为空(即使能打印变量,也要确认实际传入的不是空值)。导入流程中的字段过滤
检查是否在导入类中使用了rules()、prepareForValidation()等方法,有没有不小心过滤掉from和to字段;或者使用批量插入时,数据数组里没有包含这两个字段。异常或事务回滚
开启框架调试模式,查看日志中的SQL语句,确认插入操作是否包含from和to字段。如果SQL里没有这两个字段,回到前面的步骤排查;如果有但未写入,检查是否存在事务回滚或静默抛出的异常(比如字段长度超限、约束冲突等)。
内容的提问来源于stack exchange,提问作者Losty
相关产品推荐
相关产品推荐

