From daa50b9d3befe11eb8ebd4fc4177ea960dd87b87 Mon Sep 17 00:00:00 2001 From: Sam Minnee Date: Wed, 13 Oct 2010 01:19:33 +0000 Subject: [PATCH] BUGFIX: Ensure that DataObject IDs are numbers and no string equivalents of numbers - 3 not '3' (from r101939) git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@112049 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 83efb24ee..6688cfcc5 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;