Browse Source

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`.
JoostK 12 years ago
parent
commit
5f99c81035
1 changed files with 1 additions and 1 deletions
  1. 1 1
      laravel/database/eloquent/model.php

+ 1 - 1
laravel/database/eloquent/model.php

@@ -518,7 +518,7 @@ abstract class Model {
 
 
 		foreach ($this->attributes as $key => $value)
 		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;
 				$dirty[$key] = $value;
 			}
 			}