diff --git a/library/think/db/Query.php b/library/think/db/Query.php index 4636377b..99ae42a4 100644 --- a/library/think/db/Query.php +++ b/library/think/db/Query.php @@ -1615,6 +1615,8 @@ class Query $field = $this->options['with_field']; unset($this->options['with_field']); } + } elseif (isset($info['option']['field'])) { + $field = $info['option']['field']; } $this->field($field, false, $joinTable, $joinAlias, $relation . '__'); $i++; diff --git a/library/think/model/Relation.php b/library/think/model/Relation.php index 22670bdd..f9675c14 100644 --- a/library/think/model/Relation.php +++ b/library/think/model/Relation.php @@ -47,7 +47,8 @@ class Relation protected $query; // 关联查询条件 protected $where; - + // 关联查询参数 + protected $option; /** * 架构函数 * @access public @@ -74,6 +75,7 @@ class Relation 'localKey' => $this->localKey, 'alias' => $this->alias, 'joinType' => $this->joinType, + 'option' => $this->option, ]; return $name ? $info[$name] : $info; } @@ -689,8 +691,10 @@ class Relation } $result = call_user_func_array([$this->query, $method], $args); if ($result instanceof \think\db\Query) { + $this->option = $result->getOptions(); return $this; } else { + $this->option = []; return $result; } } else {