【BUG】一对一预加载获取不到数据的bug

浏览:487 发布日期:2016/06/14 分类:ThinkPHP5专区

改进方法

附上代码$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));
    }
}
最佳答案
评论( 相关
后面还有条评论,点击查看>>