mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-07 15:12:48 +08:00
关联模型D函数替代
This commit is contained in:
@@ -148,7 +148,7 @@ trait Relation
|
|||||||
$mappingFk = !empty($val['foreign_key']) ? $val['foreign_key'] : strtolower($this->name) . '_id'; // 关联外键
|
$mappingFk = !empty($val['foreign_key']) ? $val['foreign_key'] : strtolower($this->name) . '_id'; // 关联外键
|
||||||
}
|
}
|
||||||
// 获取关联模型对象
|
// 获取关联模型对象
|
||||||
$model = D($mappingClass);
|
$model = \think\Loader::model($mappingClass);
|
||||||
switch ($mappingType) {
|
switch ($mappingType) {
|
||||||
case HAS_ONE:
|
case HAS_ONE:
|
||||||
$pk = $result[$mappingKey];
|
$pk = $result[$mappingKey];
|
||||||
@@ -262,7 +262,7 @@ trait Relation
|
|||||||
$mappingCondition[$mappingFk] = $pk;
|
$mappingCondition[$mappingFk] = $pk;
|
||||||
}
|
}
|
||||||
// 获取关联model对象
|
// 获取关联model对象
|
||||||
$model = D($mappingClass);
|
$model = \think\Loader::model($mappingClass);
|
||||||
$mappingData = isset($data[$mappingName]) ? $data[$mappingName] : false;
|
$mappingData = isset($data[$mappingName]) ? $data[$mappingName] : false;
|
||||||
if (!empty($mappingData) || 'DEL' == $opType) {
|
if (!empty($mappingData) || 'DEL' == $opType) {
|
||||||
switch ($mappingType) {
|
switch ($mappingType) {
|
||||||
@@ -370,7 +370,7 @@ trait Relation
|
|||||||
{
|
{
|
||||||
if (empty($data) && !empty($this->data)) {
|
if (empty($data) && !empty($this->data)) {
|
||||||
$data = $this->data;
|
$data = $this->data;
|
||||||
} elseif(!is_array($data)) {
|
} elseif (!is_array($data)) {
|
||||||
// 数据无效返回
|
// 数据无效返回
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -379,22 +379,22 @@ trait Relation
|
|||||||
// 遍历关联定义
|
// 遍历关联定义
|
||||||
foreach ($this->_link as $key => $val) {
|
foreach ($this->_link as $key => $val) {
|
||||||
// 操作制定关联类型
|
// 操作制定关联类型
|
||||||
$mappingName = !empty($val['mapping_name']) ? $val['mapping_name'] : $key; // 映射名称
|
$mappingName = !empty($val['mapping_name']) ? $val['mapping_name'] : $key; // 映射名称
|
||||||
if (empty($name) || true === $name || $mappingName == $name || (is_array($name) && in_array($mappingName,$name)) ) {
|
if (empty($name) || true === $name || $mappingName == $name || (is_array($name) && in_array($mappingName, $name))) {
|
||||||
// 操作制定的关联
|
// 操作制定的关联
|
||||||
$mappingType = !empty($val['mapping_type']) ? $val['mapping_type'] : $val; // 关联类型
|
$mappingType = !empty($val['mapping_type']) ? $val['mapping_type'] : $val; // 关联类型
|
||||||
$mappingClass = !empty($val['class_name']) ? $val['class_name'] : $key; // 关联类名
|
$mappingClass = !empty($val['class_name']) ? $val['class_name'] : $key; // 关联类名
|
||||||
$mappingKey =!empty($val['mapping_key']) ? $val['mapping_key'] : $this->getPk(); // 关联键名
|
$mappingKey = !empty($val['mapping_key']) ? $val['mapping_key'] : $this->getPk(); // 关联键名
|
||||||
if (strtoupper($mappingClass) == strtoupper($this->name) || !isset($data[$mappingName])) {
|
if (strtoupper($mappingClass) == strtoupper($this->name) || !isset($data[$mappingName])) {
|
||||||
continue; // 自引用关联或提交关联数据跳过
|
continue; // 自引用关联或提交关联数据跳过
|
||||||
}
|
}
|
||||||
// 获取关联model对象
|
// 获取关联model对象
|
||||||
$model = D($mappingClass);
|
$model = \think\Loader::model($mappingClass);
|
||||||
$_data = $data[$mappingName];
|
$_data = $data[$mappingName];
|
||||||
unset($data[$key]);
|
unset($data[$key]);
|
||||||
if ($_data = $model->token(false)->create($_data)) {
|
if ($_data = $model->token(false)->create($_data)) {
|
||||||
$data[$mappingName] = $_data;
|
$data[$mappingName] = $_data;
|
||||||
$fields[] = $mappingName;
|
$fields[] = $mappingName;
|
||||||
} else {
|
} else {
|
||||||
$error = $model->getError();
|
$error = $model->getError();
|
||||||
if ($this->patchValidate) {
|
if ($this->patchValidate) {
|
||||||
|
|||||||
Reference in New Issue
Block a user