为什么写入数据的时候不会自动去除数据库没有的字段?
ThinkPHP一直以来都支持自动去除数据库没有的字段,5.0版本出于更加严谨的考虑,默认情况下当写入数据库不存在的字段的时候会抛出字段不存在的异常,有两种方法可以避免异常。
第一种,在数据库配置文件或者传入connect方法的连接参数中设置关闭严格检查:
// 关闭严格检查字段是否存在
'fields_strict' => false,
这种方式全局有效。
第二种,在查询的时候使用strict方法指定是否进行严格检测字段
// 使用strict方法关闭字段严格检测
Db::name('user')->strict(false)->insert($data);