diff --git a/library/think/db/Query.php b/library/think/db/Query.php index df66fa07..0f92143a 100644 --- a/library/think/db/Query.php +++ b/library/think/db/Query.php @@ -1466,7 +1466,7 @@ class Query unset($this->options['with_field']); } } - $this->field($field, false, $joinTable, $joinAlias, $joinName . '__'); + $this->field($field, false, $joinTable, $joinAlias, $relation . '__'); $i++; } elseif ($closure) { $with[$key] = $closure; diff --git a/library/think/model/Relation.php b/library/think/model/Relation.php index 070f6ea1..a065524c 100644 --- a/library/think/model/Relation.php +++ b/library/think/model/Relation.php @@ -302,23 +302,22 @@ class Relation */ protected function match($model, $relation, &$result) { - $modelName = Loader::parseName(basename(str_replace('\\', '/', $model))); // 重新组装模型数据 foreach ($result->toArray() as $key => $val) { if (strpos($key, '__')) { list($name, $attr) = explode('__', $key, 2); - if ($name == $modelName) { + if ($name == $relation) { $list[$name][$attr] = $val; unset($result->$key); } } } - if (!isset($list[$modelName])) { + if (!isset($list[$relation])) { // 设置关联模型属性 - $list[$modelName] = []; + $list[$relation] = []; } - $result->setAttr($relation, new $model($list[$modelName])); + $result->setAttr($relation, new $model($list[$relation])); } /**