/** * 获取关联模型的字段 并解决混淆 * @access protected * @param \think\db\Query $query 查询对象 * @param string $name 模型名称 * @param string $table 关联表名称 * @param array $map 字段映射 * @param array $fields 查询字段 * @return array */ protected static function getModelField($query, $name, $table = '', $map = [], $fields = []) { // 获取模型的字段信息 $fields = $fields ?: $query->getTableInfo($table, 'fields'); $array = []; foreach ($fields as $field) { if ($key = array_search($name . '.' . $field, $map)) { // 需要处理映射字段 $array[] = $name . '.' . $field . ' AS ' . $key; } else { $array[] = $field; } } return $array; }