Fixed a problem whith Eloquent::get_dirty

When you had a synched Eloquent model (e.g. without changed values) but
one of those values is `null`, then that value would be considered as
dirty. `Eloquent::changed` returns false, but the value is present in
`Eloquent::get_dirty`.

This fix makes sure that a `null` value in `$attributes` is only
present in `get_dirty` when it wasn't at all *set* in `$original`.
This commit is contained in:
JoostK
2012-09-09 20:52:33 +02:00
parent 8004d48256
commit 5f99c81035

View File

@@ -518,7 +518,7 @@ abstract class Model {
foreach ($this->attributes as $key => $value)
{
if ( ! isset($this->original[$key]) or $value !== $this->original[$key])
if ( ! array_key_exists($key, $this->original) or $value != $this->original[$key])
{
$dirty[$key] = $value;
}