/** * 动态处理更新字段 * * @param array $params 请求参数 * @param \think\model $model 模型 * @return array */ function setFormData($params, $model) { // 获取表字段名 $table_fields = $model->getTableFields(); // 数组键值对换,填充空值 $table_fields = array_combine($table_fields, array_fill(0, count($table_fields), '')); // 过滤params中在数据表内不存在的字段 foreach ($params as $key => $value) { if (!isset($table_fields[$key])) { unset($params[$key]); } } // array_merge 键名相同时,右参数键值将覆盖左参数键值 $table_fields = array_merge($table_fields, $params); // 剔除非0空 foreach ($table_fields as $key => $value) { $value = trim($value); if ($value === '' || $value === 'NULL' || $value === null || $value === '') { unset($table_fields[$key]); } } return $table_fields; }