mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-07 23:22:48 +08:00
改进关联属性
This commit is contained in:
@@ -81,7 +81,8 @@ class BelongsTo extends OneToOne
|
|||||||
$range,
|
$range,
|
||||||
],
|
],
|
||||||
], $localKey, $relation, $subRelation, $closure);
|
], $localKey, $relation, $subRelation, $closure);
|
||||||
|
// 关联属性名
|
||||||
|
$attr = Loader::parseName($relation);
|
||||||
// 关联数据封装
|
// 关联数据封装
|
||||||
foreach ($resultSet as $result) {
|
foreach ($resultSet as $result) {
|
||||||
if (!isset($data[$result->$foreignKey])) {
|
if (!isset($data[$result->$foreignKey])) {
|
||||||
@@ -93,7 +94,7 @@ class BelongsTo extends OneToOne
|
|||||||
$this->bindAttr($relationModel, $result, $this->bindAttr);
|
$this->bindAttr($relationModel, $result, $this->bindAttr);
|
||||||
}
|
}
|
||||||
// 设置关联属性
|
// 设置关联属性
|
||||||
$result->setAttr(Loader::parseName($relation), $relationModel);
|
$result->setAttr($attr, $relationModel);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -109,14 +109,15 @@ class BelongsToMany extends Relation
|
|||||||
$range,
|
$range,
|
||||||
],
|
],
|
||||||
], $relation, $subRelation);
|
], $relation, $subRelation);
|
||||||
|
// 关联属性名
|
||||||
|
$attr = Loader::parseName($relation);
|
||||||
// 关联数据封装
|
// 关联数据封装
|
||||||
foreach ($resultSet as $result) {
|
foreach ($resultSet as $result) {
|
||||||
if (!isset($data[$result->$pk])) {
|
if (!isset($data[$result->$pk])) {
|
||||||
$data[$result->$pk] = [];
|
$data[$result->$pk] = [];
|
||||||
}
|
}
|
||||||
|
|
||||||
$result->setAttr(Loader::parseName($relation), $this->resultSetBuild($data[$result->$pk], $class));
|
$result->setAttr($attr, $this->resultSetBuild($data[$result->$pk], $class));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -143,7 +144,7 @@ class BelongsToMany extends Relation
|
|||||||
if (!isset($data[$pk])) {
|
if (!isset($data[$pk])) {
|
||||||
$data[$pk] = [];
|
$data[$pk] = [];
|
||||||
}
|
}
|
||||||
$result->setAttr($relation, $this->resultSetBuild($data[$pk], $class));
|
$result->setAttr(Loader::parseName($relation), $this->resultSetBuild($data[$pk], $class));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -79,13 +79,14 @@ class HasMany extends Relation
|
|||||||
$range,
|
$range,
|
||||||
],
|
],
|
||||||
], $relation, $subRelation, $closure);
|
], $relation, $subRelation, $closure);
|
||||||
|
// 关联属性名
|
||||||
|
$attr = Loader::parseName($relation);
|
||||||
// 关联数据封装
|
// 关联数据封装
|
||||||
foreach ($resultSet as $result) {
|
foreach ($resultSet as $result) {
|
||||||
if (!isset($data[$result->$localKey])) {
|
if (!isset($data[$result->$localKey])) {
|
||||||
$data[$result->$localKey] = [];
|
$data[$result->$localKey] = [];
|
||||||
}
|
}
|
||||||
$result->setAttr(Loader::parseName($relation), $this->resultSetBuild($data[$result->$localKey], $class));
|
$result->setAttr($attr, $this->resultSetBuild($data[$result->$localKey], $class));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -108,7 +108,8 @@ class HasOne extends OneToOne
|
|||||||
$range,
|
$range,
|
||||||
],
|
],
|
||||||
], $foreignKey, $relation, $subRelation, $closure);
|
], $foreignKey, $relation, $subRelation, $closure);
|
||||||
|
// 关联属性名
|
||||||
|
$attr = Loader::parseName($relation);
|
||||||
// 关联数据封装
|
// 关联数据封装
|
||||||
foreach ($resultSet as $result) {
|
foreach ($resultSet as $result) {
|
||||||
if (!isset($data[$result->$localKey])) {
|
if (!isset($data[$result->$localKey])) {
|
||||||
@@ -120,7 +121,7 @@ class HasOne extends OneToOne
|
|||||||
$this->bindAttr($relationModel, $result, $this->bindAttr);
|
$this->bindAttr($relationModel, $result, $this->bindAttr);
|
||||||
}
|
}
|
||||||
// 设置关联属性
|
// 设置关联属性
|
||||||
$result->setAttr(Loader::parseName($relation), $relationModel);
|
$result->setAttr($attr, $relationModel);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -89,13 +89,14 @@ class MorphMany extends Relation
|
|||||||
$morphKey => ['in', $range],
|
$morphKey => ['in', $range],
|
||||||
$morphType => $type,
|
$morphType => $type,
|
||||||
], $relation, $subRelation, $closure);
|
], $relation, $subRelation, $closure);
|
||||||
|
// 关联属性名
|
||||||
|
$attr = Loader::parseName($relation);
|
||||||
// 关联数据封装
|
// 关联数据封装
|
||||||
foreach ($resultSet as $result) {
|
foreach ($resultSet as $result) {
|
||||||
if (!isset($data[$result->$pk])) {
|
if (!isset($data[$result->$pk])) {
|
||||||
$data[$result->$pk] = [];
|
$data[$result->$pk] = [];
|
||||||
}
|
}
|
||||||
$result->setAttr(Loader::parseName($relation), $this->resultSetBuild($data[$result->$pk], $class));
|
$result->setAttr($attr, $this->resultSetBuild($data[$result->$pk], $class));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -111,6 +111,8 @@ class MorphTo extends Relation
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($range)) {
|
if (!empty($range)) {
|
||||||
|
// 关联属性名
|
||||||
|
$attr = Loader::parseName($relation);
|
||||||
foreach ($range as $key => $val) {
|
foreach ($range as $key => $val) {
|
||||||
// 多态类型映射
|
// 多态类型映射
|
||||||
$model = $this->parseModel($key);
|
$model = $this->parseModel($key);
|
||||||
@@ -126,7 +128,7 @@ class MorphTo extends Relation
|
|||||||
if (!isset($data[$result->$morphKey])) {
|
if (!isset($data[$result->$morphKey])) {
|
||||||
$data[$result->$morphKey] = [];
|
$data[$result->$morphKey] = [];
|
||||||
}
|
}
|
||||||
$result->setAttr(Loader::parseName($relation), $this->resultSetBuild($data[$result->$morphKey], $class));
|
$result->setAttr($attr, $this->resultSetBuild($data[$result->$morphKey], $class));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user