1
0
mirror of synced 2025-01-18 06:21:40 +03:00

Fixed ticket #26

This commit is contained in:
zYne 2006-08-25 20:13:37 +00:00
parent d283fbf1c7
commit cfa6a512f3
2 changed files with 31 additions and 4 deletions

View File

@ -277,7 +277,7 @@ abstract class Doctrine_Record extends Doctrine_Access implements Countable, Ite
throw new Doctrine_Exception("Unserialization of $name failed. ".var_dump($tmp[$name],true)); throw new Doctrine_Exception("Unserialization of $name failed. ".var_dump($tmp[$name],true));
} else } else
$value = $tmp[$name]; $value = $tmp[$name];
$this->data[$name] = $value; $this->data[$name] = $value;
} }
break; break;
@ -586,6 +586,9 @@ abstract class Doctrine_Record extends Doctrine_Access implements Countable, Ite
* @param mixed $value * @param mixed $value
*/ */
final public function internalSet($name, $value) { final public function internalSet($name, $value) {
if($value === null)
$value = self::$null;
$this->data[$name] = $value; $this->data[$name] = $value;
} }
/** /**
@ -618,6 +621,9 @@ abstract class Doctrine_Record extends Doctrine_Access implements Countable, Ite
if($this->state == Doctrine_Record::STATE_TCLEAN) if($this->state == Doctrine_Record::STATE_TCLEAN)
$this->state = Doctrine_Record::STATE_TDIRTY; $this->state = Doctrine_Record::STATE_TDIRTY;
if($value === null)
$value = self::$null;
$this->data[$name] = $value; $this->data[$name] = $value;
$this->modified[] = $name; $this->modified[] = $name;
} }
@ -646,6 +652,9 @@ abstract class Doctrine_Record extends Doctrine_Access implements Countable, Ite
$old = $this->get($name); $old = $this->get($name);
if($old !== $value) { if($old !== $value) {
if($value === null)
$value = self::$null;
$this->data[$name] = $value; $this->data[$name] = $value;
$this->modified[] = $name; $this->modified[] = $name;
switch($this->state): switch($this->state):
@ -796,8 +805,12 @@ abstract class Doctrine_Record extends Doctrine_Access implements Countable, Ite
if($this->data[$v] instanceof Doctrine_Record) { if($this->data[$v] instanceof Doctrine_Record) {
$this->data[$v] = $this->data[$v]->getIncremented(); $this->data[$v] = $this->data[$v]->getIncremented();
} }
if($this->data[$v] === self::$null)
$a[$v] = null;
else
$a[$v] = $this->data[$v];
$a[$v] = $this->data[$v];
} }
foreach($this->table->getInheritanceMap() as $k => $v) { foreach($this->table->getInheritanceMap() as $k => $v) {

View File

@ -93,11 +93,25 @@ class Doctrine_RecordTestCase extends Doctrine_UnitTestCase {
$this->assertEqual($coll->count(), 1); $this->assertEqual($coll->count(), 1);
} }
public function testUpdatingWithNullValue() {
$user = $this->connection->getTable('User')->find(5);
$user->name = null;
$this->assertEqual($user->name, null);
$user->save();
$this->assertEqual($user->name, null);
$this->connection->clear();
$user = $this->connection->getTable('User')->find(5);
$this->assertEqual($user->name, null);
}
public function testDateTimeType() { public function testDateTimeType() {
$date = new DateTest(); $date = new DateTest();
} }
public function testEnumType() { public function testEnumType() {