mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 12:05:37 +00:00
FIX: Enable $forceWrite argument of DataObject#write()
$forceWrite was being ignored because it was tested in a part of the code that is reachable if and only if there are changes to the object. This patch adds an additional test to correct that logic error. Also, refrain from needlessly checking for changes when $forceWrite is true. Fixes #1687
This commit is contained in:
parent
7fbb9e3a96
commit
ea7b94206d
@ -1123,7 +1123,7 @@ class DataObject extends ViewableData implements DataObjectInterface, i18nEntity
|
||||
}
|
||||
|
||||
// No changes made
|
||||
if($this->changed) {
|
||||
if($this->changed || $forceWrite) {
|
||||
foreach($this->getClassAncestry() as $ancestor) {
|
||||
if(self::has_own_table($ancestor))
|
||||
$ancestry[] = $ancestor;
|
||||
@ -1133,13 +1133,14 @@ class DataObject extends ViewableData implements DataObjectInterface, i18nEntity
|
||||
if(!$forceInsert) unset($this->changed['ID']);
|
||||
|
||||
$hasChanges = false;
|
||||
foreach($this->changed as $fieldName => $changed) {
|
||||
if($changed) {
|
||||
if (!$forceWrite) {
|
||||
foreach ($this->changed as $fieldName => $changed) {
|
||||
if ($changed) {
|
||||
$hasChanges = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
if($hasChanges || $forceWrite || !$this->record['ID']) {
|
||||
|
||||
// New records have their insert into the base data table done first, so that they can pass the
|
||||
|
Loading…
x
Reference in New Issue
Block a user