
改进方法

附上代码
$range = [];
foreach ($resultSet as $result) {
if (isset($result->$foreignKey)) {
$range[] = $result->$foreignKey;
}
}
$range = array_unique($range);
if (!empty($range)) {
$_data = $model -> where([
$localKey => [
'in',
$range,
],
]) -> select();
$data = [];
foreach ($_data as $value) {
$data[$value[$localKey]] = $value;
}
// 关联数据封装
foreach ($resultSet as $result) {
if (!isset($data[$result[$foreignKey]])) {
$data[$result->$localKey] = [];
}
$result->setAttr($relation, $this->resultSetBuild($data[$result->$foreignKey], $class));
}
} 最佳答案