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
This commit is contained in:
Sam Minnee 2010-03-31 01:13:29 +00:00
parent ccd46b0bcc
commit a4b4bd7fcd

View File

@ -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;