Model.class.php中的parseFieldsMap方法对值为null的字段未进行映射

浏览:471 发布日期:2015/09/22 分类:技术分享 关键字: parseFieldsMap bug
/**
     * 处理字段映射
     * @access public
     * @param array $data 当前数据
     * @param integer $type 类型 0 写入 1 读取
     * @return array
     */
    public function parseFieldsMap($data,$type=1) {
        // 检查字段映射
        if(!empty($this->_map)) {
            foreach ($this->_map as $key=>$val){
                if($type==1) { // 读取
                    if(isset($data[$val])) {
                        $data[$key] =   $data[$val];
                        unset($data[$val]);
                    }
                }else{
                    if(isset($data[$key])) {
                        $data[$val] =   $data[$key];
                        unset($data[$key]);
                    }
                }
            }
        }
        return $data;
    }
这里是用的isset进行了判断,isset对于变量存在但其值为NULL的情况返回的也是false,导致这种情况下未进行字段映射。
应该用array_key_exists代替isset
最佳答案
评论( 相关
后面还有条评论,点击查看>>