预载入关联属性的默认规则

This commit is contained in:
thinkphp
2017-01-21 17:27:17 +08:00
parent a13eb10116
commit 0944d0fe0e
7 changed files with 17 additions and 12 deletions

View File

@@ -11,6 +11,7 @@
namespace think\model\relation;
use think\Loader;
use think\Model;
class BelongsTo extends OneToOne
@@ -92,7 +93,7 @@ class BelongsTo extends OneToOne
$this->bindAttr($relationModel, $result, $this->bindAttr);
}
// 设置关联属性
$result->setAttr($relation, $relationModel);
$result->setAttr(Loader::parseName($relation), $relationModel);
}
}
}
@@ -122,7 +123,7 @@ class BelongsTo extends OneToOne
$this->bindAttr($relationModel, $result, $this->bindAttr);
}
// 设置关联属性
$result->setAttr($relation, $relationModel);
$result->setAttr(Loader::parseName($relation), $relationModel);
}
}

View File

@@ -14,6 +14,7 @@ namespace think\model\relation;
use think\Db;
use think\db\Query;
use think\Exception;
use think\Loader;
use think\Model;
use think\model\Pivot;
use think\model\Relation;
@@ -115,7 +116,7 @@ class BelongsToMany extends Relation
$data[$result->$pk] = [];
}
$result->setAttr($relation, $this->resultSetBuild($data[$result->$pk], $class));
$result->setAttr(Loader::parseName($relation), $this->resultSetBuild($data[$result->$pk], $class));
}
}
}

View File

@@ -13,6 +13,7 @@ namespace think\model\relation;
use think\Db;
use think\db\Query;
use think\Loader;
use think\Model;
use think\model\Relation;
@@ -84,7 +85,7 @@ class HasMany extends Relation
if (!isset($data[$result->$localKey])) {
$data[$result->$localKey] = [];
}
$result->setAttr($relation, $this->resultSetBuild($data[$result->$localKey], $class));
$result->setAttr(Loader::parseName($relation), $this->resultSetBuild($data[$result->$localKey], $class));
}
}
}
@@ -109,7 +110,7 @@ class HasMany extends Relation
if (!isset($data[$result->$localKey])) {
$data[$result->$localKey] = [];
}
$result->setAttr($relation, $this->resultSetBuild($data[$result->$localKey], $class));
$result->setAttr(Loader::parseName($relation), $this->resultSetBuild($data[$result->$localKey], $class));
}
}

View File

@@ -11,6 +11,7 @@
namespace think\model\relation;
use think\Loader;
use think\Model;
class HasOne extends OneToOne
@@ -119,7 +120,7 @@ class HasOne extends OneToOne
$this->bindAttr($relationModel, $result, $this->bindAttr);
}
// 设置关联属性
$result->setAttr($relation, $relationModel);
$result->setAttr(Loader::parseName($relation), $relationModel);
}
}
}
@@ -148,7 +149,7 @@ class HasOne extends OneToOne
// 绑定关联属性
$this->bindAttr($relationModel, $result, $this->bindAttr);
}
$result->setAttr($relation, $relationModel);
$result->setAttr(Loader::parseName($relation), $relationModel);
}
}

View File

@@ -13,6 +13,7 @@ namespace think\model\relation;
use think\Db;
use think\db\Query;
use think\Loader;
use think\Model;
use think\model\Relation;
@@ -94,7 +95,7 @@ class MorphMany extends Relation
if (!isset($data[$result->$pk])) {
$data[$result->$pk] = [];
}
$result->setAttr($relation, $this->resultSetBuild($data[$result->$pk], $class));
$result->setAttr(Loader::parseName($relation), $this->resultSetBuild($data[$result->$pk], $class));
}
}
}
@@ -114,7 +115,7 @@ class MorphMany extends Relation
$pk = $result->getPk();
if (isset($result->$pk)) {
$data = $this->eagerlyMorphToMany([$this->morphKey => $result->$pk, $this->morphType => $this->type], $relation, $subRelation, $closure);
$result->setAttr($relation, $this->resultSetBuild($data[$result->$pk], $class));
$result->setAttr(Loader::parseName($relation), $this->resultSetBuild($data[$result->$pk], $class));
}
}

View File

@@ -126,7 +126,7 @@ class MorphTo extends Relation
if (!isset($data[$result->$morphKey])) {
$data[$result->$morphKey] = [];
}
$result->setAttr($relation, $this->resultSetBuild($data[$result->$morphKey], $class));
$result->setAttr(Loader::parseName($relation), $this->resultSetBuild($data[$result->$morphKey], $class));
}
}
}
@@ -179,7 +179,7 @@ class MorphTo extends Relation
if ($data) {
$data->isUpdate(true);
}
$result->setAttr($relation, $data ?: null);
$result->setAttr(Loader::parseName($relation), $data ?: null);
}
/**

View File

@@ -228,7 +228,7 @@ abstract class OneToOne extends Relation
$this->bindAttr($relationModel, $result, $this->bindAttr);
}
}
$result->setAttr($relation, !isset($relationModel) ? null : $relationModel->isUpdate(true));
$result->setAttr(Loader::parseName($relation), !isset($relationModel) ? null : $relationModel->isUpdate(true));
}
/**