From 7af904432895174555a0b55d007afbbfcff2d6de Mon Sep 17 00:00:00 2001 From: Jose Lorenzo Rodriguez Date: Sat, 26 Oct 2013 23:53:15 +0200 Subject: [PATCH] Automatically marking the recently saved entities as already persisted --- Cake/ORM/Table.php | 1 + Cake/Test/TestCase/ORM/TableTest.php | 17 +++++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/Cake/ORM/Table.php b/Cake/ORM/Table.php index 25db320d839..9682d1f4705 100644 --- a/Cake/ORM/Table.php +++ b/Cake/ORM/Table.php @@ -730,6 +730,7 @@ protected function _processSave($entity, $options) { $id = $statement->lastInsertId($this->table(), $primary); $entity->set($primary, $id); $entity->clean(); + $entity->isNew(false); $success = $entity; } diff --git a/Cake/Test/TestCase/ORM/TableTest.php b/Cake/Test/TestCase/ORM/TableTest.php index 819dd519c68..ce540df5d3d 100644 --- a/Cake/Test/TestCase/ORM/TableTest.php +++ b/Cake/Test/TestCase/ORM/TableTest.php @@ -1305,4 +1305,21 @@ public function testsASavedEntityIsClean() { $this->assertFalse($entity->dirty('updated')); } +/** + * Tests that a recently saved entity is marked as not new + * + * @return void + */ + public function testsASavedEntityIsNotNew() { + $entity = new \Cake\ORM\Entity([ + 'username' => 'superuser', + 'password' => 'root', + 'created' => new \DateTime('2013-10-10 00:00'), + 'updated' => new \DateTime('2013-10-10 00:00') + ]); + $table = TableRegistry::get('users'); + $this->assertSame($entity, $table->save($entity)); + $this->assertFalse($entity->isNew()); + } + }