diff --git a/library/think/Model.php b/library/think/Model.php index d4db7813..c9389356 100644 --- a/library/think/Model.php +++ b/library/think/Model.php @@ -1492,11 +1492,11 @@ abstract class Model implements \JsonSerializable, \ArrayAccess // 支持闭包查询过滤关联条件 $closure = $relation; $relation = $key; - } elseif (is_array($relation)) { + } + if (is_array($relation)) { $subRelation = $relation; $relation = $key; - } - if (strpos($relation, '.')) { + } elseif (strpos($relation, '.')) { list($relation, $subRelation) = explode('.', $relation, 2); } $method = Loader::parseName($relation, 1, false); @@ -1522,7 +1522,10 @@ abstract class Model implements \JsonSerializable, \ArrayAccess $closure = $relation; $relation = $key; } - if (strpos($relation, '.')) { + if (is_array($relation)) { + $subRelation = $relation; + $relation = $key; + } elseif (strpos($relation, '.')) { list($relation, $subRelation) = explode('.', $relation, 2); } $relation = Loader::parseName($relation, 1, false); @@ -1548,7 +1551,10 @@ abstract class Model implements \JsonSerializable, \ArrayAccess $closure = $relation; $relation = $key; } - if (strpos($relation, '.')) { + if (is_array($relation)) { + $subRelation = $relation; + $relation = $key; + } elseif (strpos($relation, '.')) { list($relation, $subRelation) = explode('.', $relation, 2); } $relation = Loader::parseName($relation, 1, false);