Model.php
protected function _transKeys()
    {
        $ret_fields = [];
        $arr_fields = array_map('trim', explode(',', $this->_criteria->field));

        if (empty($this->_criteria['with'])) {
            if(in_array('*', $arr_fields)) {
                $ret_fields =  array_keys($this->alias());
            } else {
                $ret_fields = $arr_fields;
            }

        } else {
            if(in_array('*', $arr_fields)) {
                foreach($this->alias() as $col => $alias) {
                    $ret_fields[] = $this->getTable() . '.' . $col;
                }

                foreach($this->_criteria['with'] as $rela) {
                    $model = M($this->relations()[$rela][2]);
                    foreach($model->alias() as $col => $alias) {
                        $ret_fields[] = $model->getTable() . '.' . $col;
                    }
                }
            } else {
                foreach($arr_fields as $field) {
                    list($table, $field) = explode('.', $field);

                    if($table == $this->getTable()) {
                        $model = $this;
                    } else {
                        $model = M($this->getModelName($table));
                    }

                    if($field == '*') {
                        foreach($model->alias() as $col => $alias) {
                            $ret_fields[] = $table . '.' . $col;
                        }
                    } else {
                        $ret_fields[] = $table . '.' . $field;
                    }
                }
            }
        }

        return $ret_fields;
    }
protected function _transKeys()
    {
        $ret_fields = [];
        $arr_fields = array_map('trim', explode(',', $this->_criteria->field));

        if (empty($this->_criteria['with'])) {
            if(in_array('*', $arr_fields)) {
                $ret_fields =  array_keys($this->alias());
            } else {
                $ret_fields = $arr_fields;
            }

        } else {
            if(in_array('*', $arr_fields)) {
                foreach($this->alias() as $col => $alias) {
                    $ret_fields[] = $this->getTable() . '.' . $col;
                }

                foreach($this->_criteria['with'] as $rela) {
                    $model = M($this->relations()[$rela][2]);
                    foreach($model->alias() as $col => $alias) {
                        $ret_fields[] = $model->getTable() . '.' . $col;
                    }
                }
            } else {
                foreach($arr_fields as $field) {
                    list($table, $field) = explode('.', $field);

                    if($table == $this->getTable()) {
                        $model = $this;
                    } else {
                        $model = M($this->getModelName($table));
                    }

                    if($field == '*') {
                        foreach($model->alias() as $col => $alias) {
                            $ret_fields[] = $table . '.' . $col;
                        }
                    } else {
                        $ret_fields[] = $table . '.' . $field;
                    }
                }
            }
        }

        return $ret_fields;
    }
}