改进多对多关联

This commit is contained in:
thinkphp
2018-10-26 16:12:11 +08:00
parent 26380b7019
commit f89cc5a6e4
8 changed files with 101 additions and 9 deletions

View File

@@ -2130,14 +2130,23 @@ class Query
$this->field('*');
}
foreach ($relations as $key => $relation) {
$closure = false;
$closure = $name = null;
if ($relation instanceof \Closure) {
$closure = $relation;
$relation = $key;
} elseif (!is_int($key)) {
$name = $relation;
$relation = $key;
}
$relation = Loader::parseName($relation, 1, false);
$count = '(' . $this->model->$relation()->getRelationCountQuery($closure) . ')';
$this->field([$count => Loader::parseName($relation) . '_count']);
$count = '(' . $this->model->$relation()->getRelationCountQuery($closure, $name) . ')';
if (empty($name)) {
$name = Loader::parseName($relation) . '_count';
}
$this->field([$count => $name]);
}
}
return $this;