* [refac] fix bug for setFieldSettings.

This commit is contained in:
宋辰轩
2024-07-01 13:41:01 +08:00
committed by 綦新志
parent 024c6c1de6
commit 1b78b2eb78
+12 -7
View File
@@ -532,19 +532,24 @@ class pivotState
*/
public function setFieldSettings($settings)
{
$settings = (array)$settings;
$fromCreate = empty($this->fieldSettings);
$fieldSettings = !$fromCreate ? $this->fieldSettings : $settings;
$settings = (array)$settings;
$oldFieldSettings = empty($this->fieldSettings) ? $this->fieldSettings : array();
$newFieldSettings = array();
if(!$fromCreate)
foreach($settings as $field => $setting)
{
foreach($settings as $field => $setting)
$oldSetting = isset($fieldSettings[$field]) ? $fieldSettings[$field] : array();
if(!empty($oldSetting) && $oldSetting['object'] == $setting['object'] && $oldSetting['field'] == $setting['field'])
{
$fieldSettings[$field] = $this->processFieldSettingLang($field, $fieldSettings[$field]);
$newFieldSettings[$field] = $this->processFieldSettingLang($field, $oldSetting);
}
else
{
$newFieldSettings[$field] = $setting;
}
}
$this->fieldSettings = $fieldSettings;
$this->fieldSettings = $newFieldSettings;
}
/**