Details
Description
The _isValueModified function in Record.php does the following for checking whether or not an integral value was modified:
...
} else if (in_array($type, array('integer', 'int')) && is_numeric($old) && is_numeric($new)) {
return $old !== $new;
...
} else {
return $old !== $new;
...
This does not make sense, it implies strict type checking is always done for integers.
I think the first check (line 1533) should be done loosely so that a string '123' is equal to integer 123, and thereby such a field is not considered modified.
Attaching the simple patch to correct this.