/** * 一对一 关联模型预查询拼装 * @access public * @param string $model 模型名称 * @param string $relation 关联名 * @param Model $result 模型对象实例 * @return void */ 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) { $list[$name][$attr] = $val; unset($result->{$key}); } } } if (!isset($list[$modelName])) { // 设置关联模型属性 $list[$modelName] = []; } $result->__set($relation, new $model($list[$modelName])); }