From a4b4bd7fcd7b46c870ce829bdd018f13333d577d Mon Sep 17 00:00:00 2001 From: Sam Minnee Date: Wed, 31 Mar 2010 01:13:29 +0000 Subject: [PATCH] BUGFIX: Ensure that DataObject IDs are numbers and no string equivalents of numbers - 3 not '3' git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/branches/2.4@101939 467b73ca-7a2a-4603-9d3b-597d59a354a9 --- core/model/DataObject.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/core/model/DataObject.php b/core/model/DataObject.php index 32544e655..7b6b80552 100755 --- a/core/model/DataObject.php +++ b/core/model/DataObject.php @@ -342,7 +342,13 @@ class DataObject extends ViewableData implements DataObjectInterface, i18nEntity // Set $this->record to $record, but ignore NULLs $this->record = array(); foreach($record as $k => $v) { - if($v !== null) $this->record[$k] = $v; + // Ensure that ID is stored as a number and not a string + // To do: this kind of clean-up should be done on all numeric fields, in some relatively + // performant manner + if($v !== null) { + if($k == 'ID' && is_numeric($v)) $this->record[$k] = (int)$v; + else $this->record[$k] = $v; + } } $this->original = $this->record;